作業系統基礎資訊蒐集
阿新 • • 發佈:2020-08-17
前言
對於作業系統的資訊蒐集有什麼作用?提權、深入測試、域滲透、留後門······
有一位大師傅曾經說過:內網滲透的本質是資訊蒐集。
看了許多內網資訊收集的文章,所用到的收集資訊的命令大都是相同的。既然如此,寫一個簡單的指令碼省去一些重複操作。
Windows
常用命令
whoami/echo %USERNAME% # 當前使用者 ipconfig # IP 資訊 net user # 使用者列表 systeminfo # 檢視系統資訊 wmic qfe get HotFixID # 純補丁資訊 set # 檢視環境變數 netsh firewall show state # 檢視防火牆狀態 net localgroup # 檢視使用者組 net localgroup administrators # 檢視本機管理員 net config workstation # 檢視當前計算機名,全名,使用者名稱,系統版本,工作 站域,登陸域 netstat -ano # 檢視埠 tasklist # 檢視所有程序 net start # 檢視已啟動的服務 net share # 檢視共享列表 net user /domain # 獲取域內使用者資訊 net view /domain # 查詢域 net group /domain # 查詢域內所有使用者 net group "domain computers" /domain # 查詢所有域成員計算機 net accounts /domain # 獲取域密碼資訊 net group "Domain admins" /domain # 收集管理員列表 net group "Domain Controller" /domain # 查詢域控制器列表 Nslookup -type=SRV _ldap._tcp # 檢視域控制器的主機
可能存在敏感檔案
C:\Apache\conf\httpd.conf C:\Apache\logs\access.log C:\Apache\logs\error.log C:\Apache2\conf\httpd.conf C:\Apache2\logs\access.log C:\Apache2\logs\error.log C:\Apache22\conf\httpd.conf C:\Apache22\logs\access.log C:\Apache22\logs\error.log C:\Apache24\conf\httpd.conf C:\Apache24\logs\access.log C:\Apache24\logs\error.log C:\Documents and Settings\Administrator\NTUser.dat C:\php\php.ini C:\php4\php.ini C:\php5\php.ini C:\php7\php.ini C:\Program Files (x86)\Apache Group\Apache\conf\httpd.conf C:\Program Files (x86)\Apache Group\Apache\logs\access.log C:\Program Files (x86)\Apache Group\Apache\logs\error.log C:\Program Files (x86)\Apache Group\Apache2\conf\httpd.conf C:\Program Files (x86)\Apache Group\Apache2\logs\access.log C:\Program Files (x86)\Apache Group\Apache2\logs\error.log c:\Program Files (x86)\php\php.ini" C:\Program Files\Apache Group\Apache\conf\httpd.conf C:\Program Files\Apache Group\Apache\conf\logs\access.log C:\Program Files\Apache Group\Apache\conf\logs\error.log C:\Program Files\Apache Group\Apache2\conf\httpd.conf C:\Program Files\Apache Group\Apache2\conf\logs\access.log C:\Program Files\Apache Group\Apache2\conf\logs\error.log C:\Program Files\FileZilla Server\FileZilla Server.xml C:\Program Files\MySQL\my.cnf C:\Program Files\MySQL\my.ini C:\Program Files\MySQL\MySQL Server 5.0\my.cnf C:\Program Files\MySQL\MySQL Server 5.0\my.ini C:\Program Files\MySQL\MySQL Server 5.1\my.cnf C:\Program Files\MySQL\MySQL Server 5.1\my.ini C:\Program Files\MySQL\MySQL Server 5.5\my.cnf C:\Program Files\MySQL\MySQL Server 5.5\my.ini C:\Program Files\MySQL\MySQL Server 5.6\my.cnf C:\Program Files\MySQL\MySQL Server 5.6\my.ini C:\Program Files\MySQL\MySQL Server 5.7\my.cnf C:\Program Files\MySQL\MySQL Server 5.7\my.ini C:\Program Files\php\php.ini C:\Users\Administrator\NTUser.dat C:\Windows\debug\NetSetup.LOG C:\Windows\Panther\Unattend\Unattended.xml C:\Windows\Panther\Unattended.xml C:\Windows\php.ini C:\Windows\repair\SAM C:\Windows\repair\system C:\Windows\System32\config\AppEvent.evt C:\Windows\System32\config\RegBack\SAM C:\Windows\System32\config\RegBack\system C:\Windows\System32\config\SAM C:\Windows\System32\config\SecEvent.evt C:\Windows\System32\config\SysEvent.evt C:\Windows\System32\config\SYSTEM C:\Windows\System32\drivers\etc\hosts C:\Windows\System32\winevt\Logs\Application.evtx C:\Windows\System32\winevt\Logs\Security.evtx C:\Windows\System32\winevt\Logs\System.evtx C:\Windows\win.ini C:\xampp\apache\conf\extra\httpd-xampp.conf C:\xampp\apache\conf\httpd.conf C:\xampp\apache\logs\access.log C:\xampp\apache\logs\error.log C:\xampp\FileZillaFTP\FileZilla Server.xml C:\xampp\MercuryMail\MERCURY.INI C:\xampp\mysql\bin\my.ini C:\xampp\php\php.ini C:\xampp\security\webdav.htpasswd C:\xampp\sendmail\sendmail.ini C:\xampp\tomcat\conf\server.xml
Linux
常用命令
whoami # 使用者名稱 id # 使用者 id cat /etc/shadow #獲取使用者 hash,需要 root 許可權 cat /etc/issue # 檢視系統名稱 cat /etc/lsb-release # 檢視系統名稱、版本號 uname -a # 檢視所有資訊 ps aux # 檢視所有程序詳細資訊 top # 檢視程序 ifconfig/ip addr # 檢視 IP cat /etc/serivices # 檢視存在的服務 history # 檢視歷史命令 cat ~/.bash_history # 所有歷史命令 dpkg -l # 檢視安裝的軟體包 lastlog # 檢視使用者登入日誌 cat /etc/group # 檢視使用者組 grep -v -E "^#" /etc/passwd | awk -F: '$3==0{print $1}' # 列出超級使用者 env # 檢視環境變數 last # 歷史登陸使用者
可能存在的敏感檔案
cat /etc/httpd/logs/access_log
cat /etc/httpd/logs/access.log
cat /etc/httpd/logs/error_log
cat /etc/httpd/logs/error.log
cat /var/log/apache2/access_log
cat /var/log/apache2/access.log
cat /var/log/apache2/error_log
cat /var/log/apache2/error.log
cat /var/log/apache/access_log
cat /var/log/apache/access.log
cat /var/log/auth.log
cat /var/log/chttp.log
cat /var/log/cups/error_log
cat /var/log/dpkg.log
cat /var/log/faillog
cat /var/log/httpd/access_log
cat /var/log/httpd/access.log
cat /var/log/httpd/error_log
cat /var/log/httpd/error.log
cat /var/log/lastlog
cat /var/log/lighttpd/access.log
cat /var/log/lighttpd/error.log
cat /var/log/lighttpd/lighttpd.access.log
cat /var/log/lighttpd/lighttpd.error.log
cat /var/log/messages
cat /var/log/secure
cat /var/log/syslog
cat /var/log/wtmp
cat /var/log/xferlog
cat /var/log/yum.log
cat /var/run/utmp
cat /var/webmin/miniserv.log
cat /var/www/logs/access_log
cat /var/www/logs/access.log
ls -alh /var/lib/dhcp3/
ls -alh /var/log/postgresql/
ls -alh /var/log/proftpd/
ls -alh /var/log/samba/
簡易指令碼
# -s 指定作業系統 Linux/Windos
# -d 指定是否存在域,不清楚可省略 0/1 0表示無,1表示有
import subprocess
import argparse
cmds = [{
'whoami': '當前使用者',
'ipconfig': 'IP 資訊',
'net user': '使用者列表',
'systeminfo': '檢視系統資訊',
'wmic qfe get HotFixID': '補丁資訊',
'set': '環境變數',
'netsh firewall show state': '防火牆狀態',
'net localgroup': '所有使用者組',
'net localgroup administrators': '管理員組成員',
'net config workstation': '當前計算機名、全名、使用者名稱、系統版本、工作站域、登陸域'
}, {
'netstat -ano': '埠資訊',
'tasklist': '所有程序',
'net start': '已啟動服務',
'net share': '共享列表',
}, {
'net view /domain': '查詢域結果',
'net user /domain': '域內使用者資訊',
'net group /domain': '域內所有使用者組',
'net group "domain computers" /domain': '所有域成員計算機',
'net accounts /domain': '域密碼資訊',
'net group "Domain admins" /domain': '域管理員列表',
'net group "Domain Controller" /domain': '查詢域控制器列表',
'nslookup -type=SRV _ldap._tcp': '域控制器的主機',
}]
bashs = [
{
'whoami': '使用者名稱',
'id': '使用者 id',
'cat /etc/issue': '檢視系統名稱',
'cat /etc/lsb-release': '系統名稱、版本號',
'uname -a': '核心資訊',
'ip addr': 'IP',
'cat ~/.bash_history': '歷史命令',
'grep -v -E "^#" /etc/passwd | awk -F: "$3==0{print $1}"': '超級使用者',
'env': '環境變數',
'lastlog': '使用者登入日誌',
'last': '歷史登陸使用者',
'cat /etc/group': '檢視使用者組',
},
{
'dpkg -l': '檢視安裝的軟體包',
'cat /etc/serivices': '存在的服務',
'pa aux': '所有程序詳細資訊',
},
{
'cat /etc/shadow': '使用者 hash',
}
]
win = '''C:\\Apache\\conf\\httpd.conf
C:\\Apache\\logs\\access.log
C:\\Apache\\logs\\error.log
C:\\Apache2\\conf\\httpd.conf
C:\\Apache2\\logs\\access.log
C:\\Apache2\\logs\\error.log
C:\\Apache22\\conf\\httpd.conf
C:\\Apache22\\logs\\access.log
C:\\Apache22\\logs\\error.log
C:\\Apache24\\conf\\httpd.conf
C:\\Apache24\\logs\\access.log
C:\\Apache24\\logs\\error.log
C:\\Documents and Settings\\Administrator\\NTUser.dat
C:\\php\\php.ini
C:\\php4\\php.ini
C:\\php5\\php.ini
C:\\php7\\php.ini
C:\\Program Files (x86)\\Apache Group\\Apache\\conf\\httpd.conf
C:\\Program Files (x86)\\Apache Group\\Apache\\logs\\access.log
C:\\Program Files (x86)\\Apache Group\\Apache\\logs\\error.log
C:\\Program Files (x86)\\Apache Group\\Apache2\\conf\\httpd.conf
C:\\Program Files (x86)\\Apache Group\\Apache2\\logs\\access.log
C:\\Program Files (x86)\\Apache Group\\Apache2\\logs\\error.log
c:\\Program Files (x86)\\php\\php.ini
C:\\Program Files\\Apache Group\\Apache\\conf\\httpd.conf
C:\\Program Files\\Apache Group\\Apache\\conf\\logs\\access.log
C:\\Program Files\\Apache Group\\Apache\\conf\\logs\\error.log
C:\\Program Files\\Apache Group\\Apache2\\conf\\httpd.conf
C:\\Program Files\\Apache Group\\Apache2\\conf\\logs\\access.log
C:\\Program Files\\Apache Group\\Apache2\\conf\\logs\\error.log
C:\\Program Files\\FileZilla Server\\FileZilla Server.xml
C:\\Program Files\\MySQL\\my.cnf
C:\\Program Files\\MySQL\\my.ini
C:\\Program Files\\MySQL\\MySQL Server 5.0\\my.cnf
C:\\Program Files\\MySQL\\MySQL Server 5.0\\my.ini
C:\\Program Files\\MySQL\\MySQL Server 5.1\\my.cnf
C:\\Program Files\\MySQL\\MySQL Server 5.1\\my.ini
C:\\Program Files\\MySQL\\MySQL Server 5.5\\my.cnf
C:\\Program Files\\MySQL\\MySQL Server 5.5\\my.ini
C:\\Program Files\\MySQL\\MySQL Server 5.6\\my.cnf
C:\\Program Files\\MySQL\\MySQL Server 5.6\\my.ini
C:\\Program Files\\MySQL\\MySQL Server 5.7\\my.cnf
C:\\Program Files\\MySQL\\MySQL Server 5.7\\my.ini
C:\\Program Files\\php\\php.ini
C:\\Users\\Administrator\\NTUser.dat
C:\\Windows\\debug\\NetSetup.LOG
C:\\Windows\\Panther\\Unattend\\Unattended.xml
C:\\Windows\\Panther\\Unattended.xml
C:\\Windows\\php.ini
C:\\Windows\\repair\\SAM
C:\\Windows\\repair\\system
C:\\Windows\\System32\\config\\AppEvent.evt
C:\\Windows\\System32\\config\\RegBack\\SAM
C:\\Windows\\System32\\config\\RegBack\\system
C:\\Windows\\System32\\config\\SAM
C:\\Windows\\System32\\config\\SecEvent.evt
C:\\Windows\\System32\\config\\SysEvent.evt
C:\\Windows\\System32\\config\\SYSTEM
C:\\Windows\\System32\\drivers\\etc\\hosts
C:\\Windows\\System32\\winevt\\Logs\\Application.evtx
C:\\Windows\\System32\\winevt\\Logs\\Security.evtx
C:\\Windows\\System32\\winevt\\Logs\\System.evtx
C:\\Windows\\win.ini
C:\\xampp\\apache\\conf\\extra\\httpd-xampp.conf
C:\\xampp\\apache\\conf\\httpd.conf
C:\\xampp\\apache\\logs\\access.log
C:\\xampp\\apache\\logs\\error.log
C:\\xampp\\FileZillaFTP\\FileZilla Server.xml
C:\\xampp\\MercuryMail\\MERCURY.INI
C:\\xampp\\mysql\\bin\\my.ini
C:\\xampp\\php\\php.ini
C:\\xampp\\security\\webdav.htpasswd
C:\\xampp\\sendmail\\sendmail.ini
C:\\xampp\\tomcat\\conf\\server.xml'''
lin = """/etc/httpd/logs/access_log
/etc/httpd/logs/access.log
/etc/httpd/logs/error_log
/etc/httpd/logs/error.log
/var/log/apache2/access_log
/var/log/apache2/access.log
/var/log/apache2/error_log
/var/log/apache2/error.log
/var/log/apache/access_log
/var/log/apache/access.log
/var/log/auth.log
/var/log/chttp.log
/var/log/cups/error_log
/var/log/dpkg.log
/var/log/faillog
/var/log/httpd/access_log
/var/log/httpd/access.log
/var/log/httpd/error_log
/var/log/httpd/error.log
/var/log/lastlog
/var/log/lighttpd/access.log
/var/log/lighttpd/error.log
/var/log/lighttpd/lighttpd.access.log
/var/log/lighttpd/lighttpd.error.log
/var/log/messages
/var/log/secure
/var/log/syslog
/var/log/wtmp
/var/log/xferlog
/var/log/yum.log
/var/run/utmp
/var/webmin/miniserv.log
/var/www/logs/access_log
/var/www/logs/access.log"""
Win_files = win.split('\n')
Lin_files = lin.split('\n')
def getInfo(system, key):
if system == "Windows":
exes = cmds
if key == '0':
exes.pop()
print(exes)
files = win
else:
exes = bashs
files = lin
all = ''
for commands in exes:
for k, v in commands.items():
try:
res = subprocess.Popen(k, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding="utf-8")
res = v + ":\n" + res.stdout.read() + "-------******-------\n"
print(res)
all += res
except:
res = subprocess.Popen(k, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding="gbk")
res = v + ":\n" + res.stdout.read() + "-------******-------\n"
print(res)
all += res
all += '存在的敏感檔案有:\n'
print('存在的敏感檔案有:(Linux 下由於許可權問題掃描可能會不準確!請複測!!)\n')
for file in files:
try:
with open(file, 'r'):
all += (file + '\n')
print(file + '\n')
except:
pass
with open('result.txt', 'a+') as f:
f.write(all)
print("\n\nEverything is Done!")
print('執行的命令有:')
for command in exes:
for k, v in command.items():
print(k)
def main():
parser = argparse.ArgumentParser(description='InfoScan')
parser.add_argument("-s", "--system", help="指定作業系統", default='Windows')
parser.add_argument("-d", "--domain", help="是否存在域,不確定可以不用加", default=0)
args = parser.parse_args()
system = args.system
key = args.domain
getInfo(system, key)
if __name__ == '__main__':
main()