linux信息收集
1、系统区分
debian系列:debian、ubuntu
redhat系列:redhat、centos
是否为docker、或者为虚拟机
分为通用模块、单独模块的信息获取
2、系统信息收集
内核(是否为x64还是x86):uname -a
版本:cat /etc/issue
cat /etc/*-release
网络地址\mac地址\ipv6地址:ifconfig
主机名:hostname
hosts:
cat /etc/hosts
cat /etc/resolv.conf
3、用户信息
who
last
系统用户:
获取用户名、gid、uid、home路径:awk -F ':' '{print $1,$3,$4,$6;}' /etc/passwd
获取用户组:cat /etc/group
**获取hash**:cat /etc/shadow
列出超级用户:grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}'
查看用户操作:cat ~/.bash_history
获取在线用户:w
4、服务程序
需要实现:得到系统安装程序以及服务,版本信息和运行权限,用文档封装一下
端口:netstat
进程:ps -aux
ps -A -o user,pid,tty,start,time,command | grep -E "[^]]$"
程序:
dpkg -l
rpm -qa
5、敏感文件
/etc/目录下
计划任务
日志文件
bash_history
find / -type f -iname "*.bash_history" -o -iname "*config*" -o -iname "web.xml" -o -iname "*database*" -o -iname "*pass*" 2>/dev/null
config
web.xml
6、常见可使用程序
nmap
nc
netcat
wget
tcpdump
wireshark
rpm
yum
apt-get
ftp
ssh
telnet
scp
nslookup
ruby
6、交互通信的ip
hosts
netstat -antpu
arp -a
tracert
7、提权帮助
根据内核去确认漏洞
8、信息展示
整体流程:信息获取 -> 信息处理 -> 信息输出
系统信息:
内核、x86|x64、主机类型、主机名
ip地址、mac地址
是否存在exp获取root
用户信息:
存在的用户、在线用户
用户组
last信息
用户操作信息 .bash_history
用户hash
服务信息:
端口,可能的服务名
进程,可能的进程名,进程权限,进程开启时间
文件信息:
敏感文件(password/config/database)
打包文件+运行文件(.zip/.tar.gz/.pl/.sh/.py)
服务配置文件(httpd.conf)
log文件(做处理,只显示log所在目录)
常见的信息文件扫描
//需要通过上面获取的信息整理出来
程序信息:
程序名、程序端口、运行的进程、版本、配置文件
命令信息:
可执行的一些程序
通信信息:
hosts
arp缓存
端口
结构信息:
内网主机存活
9、参考
基础内核信息:
uname -a 2>/dev/null
cat /proc/version 2>/dev/null
cat /etc/*-release 2>/dev/null
主机名:
hostname 2>/dev/null
最后用户登录的信息:
lastlog |grep -v "Never" 2>/dev/null
strips out username uid and gid values from /etc/passwd
cat /etc/passwd | cut -d ":" -f 1,2,3,4 2>/dev/null
列出所有用户的组
for i in $(cat /etc/passwd 2>/dev/null| cut -d":" -f1 2>/dev/null);do id $i;done 2>/dev/null
查询是否有hash存储在/etc/passwd(*nix中)
grep -v '^[^:]*:[x]' /etc/passwd 2>/dev/null
根据uid列出本地用户:
grep -v "^#" /etc/passwd | awk -F: '$3 == 0 || $3 == 500 || $3 == 501 || $3 == 502 || $3 == 1000 || $3 == 1001 || $3 == 1002 || $3 == 2000 || $3 == 2001 || $3 == 2002 { print }'
读取shadow文件
cat /etc/shadow 2>/dev/null
bsd的shadow文件
cat /etc/master.passwd 2>/dev/null
能够sudo不需要提供密码
echo '' | sudo -S -l 2>/dev/null
检查root目录是否存在
ls -ahl /root/ 2>/dev/null
显示home目录情况
ls -ahl /home/ 2>/dev/null
寻找文件我们能写但是不属于我们的文件
find / -writable -not -user \`whoami\` -type f -not -path "/proc/*" -exec ls -al {} \; 2>/dev/null
寻找ssh公钥
find / -name "id_dsa*" -o -name "id_rsa*" -o -name "known_hosts" -o -name "authorized_hosts" -o -name "authorized_keys" 2>/dev/null |xargs -r ls
root是否能登录ssh
grep "PermitRootLogin " /etc/ssh/sshd_config 2>/dev/null | grep -v "#" | awk '{print $2}'
如果返回yes则可以登录
环境变量
echo $PATH 2>/dev/null
列出能用的shells
cat /etc/shells 2>/dev/null
hash的密码加密政策
cat /etc/login.defs 2>/dev/null | grep "PASS_MAX_DAYS\|PASS_MIN_DAYS\|PASS_WARN_AGE\|ENCRYPT_METHOD" 2>/dev/null | grep -v "#" 2>/dev/null
所有的计划任务配置文件
ls -la /etc/cron* 2>/dev/null
获取计划任务内容
cat /etc/crontab 2>/dev/null
ubuntu获取计划任务
ls -la /var/spool/cron/crontabs 2>/dev/null
ls -la /etc/anacrontab 2>/dev/null; cat /etc/anacrontab 2>/dev/null
ls -la /var/spool/anacron 2>/dev/null
获取每个用户的计划任务
cat /etc/passwd | cut -d ":" -f 1 | xargs -n1 crontab -l -u 2>/dev/null
获取ifconfig
/sbin/ifconfig -a 2>/dev/null
dns设置
cat /etc/resolv.conf 2>/dev/null | grep "nameserver"
路由配置
route 2>/dev/null | grep default
正在监听的tcp端口
netstat -antp 2>/dev/null
udp端口
netstat -anup 2>/dev/null
正在运行的程序
ps aux 2>/dev/null
查看进程路径和权限
ps aux | awk '{print $11}'|xargs -r ls -la 2>/dev/null |awk '!x[$0]++'
获取inetd.conf文件(监视网络的守护进程)
cat /etc/inetd.conf 2>/dev/null
cat /etc/inetd.conf 2>/dev/null | awk '{print $7}' |xargs -r ls -la 2>/dev/null
cat /etc/xinetd.conf 2>/dev/null
cat /etc/xinetd.conf 2>/dev/null | awk '{print $7}' |xargs -r ls -la 2>/dev/null
列举各种服务的管理脚本
ls -la /etc/init.d 2>/dev/null
寻找不是root的:
find /etc/init.d/ \! -uid 0 -type f 2>/dev/null |xargs -r ls -la 2>/dev/null
ls -la /etc/rc.d/init.d 2>/dev/null
find /etc/rc.d/init.d \! -uid 0 -type f 2>/dev/null |xargs -r ls -la 2>/dev/null
ls -la /usr/local/etc/rc.d 2>/dev/null
find /usr/local/etc/rc.d \! -uid 0 -type f 2>/dev/null |xargs -r ls -la 2>/dev/null
获取mysql版本
mysql --version 2>/dev/null
mysqladmin -uroot version 2>/dev/null
获取sudo版本
sudo -V 2>/dev/null| grep "Sudo version" 2>/dev/null
测试root/root能否登录
mysqladmin -uroot -proot version 2>/dev/null
postgres版本
psql -V 2>/dev/null
登录成功
psql -U postgres template0 -c 'select version()' 2>/dev/null | grep version
apache详情
apache2 -v 2>/dev/null; httpd -v 2>/dev/null
apache的运行用户
cat /etc/apache2/envvars 2>/dev/null |grep -i 'user\|group' |awk '{sub(/.*\export /,"")}1'
plan(could contain useful information)
find /home /usr/home -iname *.plan -exec ls -la {} \; -exec cat {} 2>/dev/null \;
rhosts(these may allow us to login as another user etc.)
find /home -iname *.rhosts -exec ls -la {} 2>/dev/null \; -exec cat {} 2>/dev/null \;
.plan
.rhosts
hosts.equiv
/etc/exports
.conf
.log
.ini
.*_history
/root/.*_history
ls -la /var/mail 2>/dev/null
head /var/mail/root 2>/dev/null
软件安装判断流程
dpkg -l
rpm -qa
etc目录配置文件
linux信息收集的更多相关文章
- Kali Linux信息收集工具
http://www.freebuf.com/column/150118.html 可能大部分渗透测试者都想成为网络空间的007,而我个人的目标却是成为Q先生! 看过007系列电影的朋友,应该都还记得 ...
- Kali Linux信息收集工具全集
001:0trace.tcptraceroute.traceroute 描述:进行路径枚举时,传统基于ICMP协议的探测工具经常会受到屏蔽,造成探测结果不够全面的问题.与此相对基于TCP协议的探测,则 ...
- Kali Linux信息收集工具全
可能大部分渗透测试者都想成为网络空间的007,而我个人的目标却是成为Q先生! 看过007系列电影的朋友,应该都还记得那个戏份不多但一直都在的Q先生(由于年级太长目前已经退休).他为007发明了众多神奇 ...
- 内网渗透----Linux信息收集整理
一.基础信息收集 1.查看系统类型 cat /etc/issue cat /etc/*-release cat /etc/lsb-release cat /etc/redhat-release 2.内 ...
- linux信息收集篇之sosreport
sosreport是一个类型于supportconfig 的工具,sosreport是python编写的一个工具,适用于centos(和redhat一样,包名为sos).ubuntu(其下包名为sos ...
- kali linux 信息收集(Kismet)
1.kismet工具,是一个无线扫描工具,该工具通过测量周围的无线信号,可以扫描到周围附近所用可用的Ap,以及信道等信息.同时还可以捕获网络中的数据包到一个文件中.这样可以方便分析数据包.下面我将详细 ...
- linux 信息收集脚本。转自insight-labs
找出所有.sh .pl .py .conf .cnf .ini .*history .*pass* (/usr/share目录里面的除外) 并且在当前目录zip打包.有些时候很多配置文件的权限配置不严 ...
- Linux - 信息收集
1. #!,代表加载器(解释器)的路径,如: #!/bin/bash echo "Hello Boy!" 上面的意思是说,把下面的字符(#!/bin/bash以下的所有字符)统统传 ...
- 信息收集->DNS分析->dnsdict6
如何获取域名的IPV4/IPV6地址之dnsdict6的使用 dnsdict6是一个用于获取网站信息的工具.dnsdict6可以扫描网站并显示有多少域或者子域,也可以扫描ipv6/ipv4地址.dns ...
随机推荐
- workqueue --最清晰的讲解【转】
转自:https://www.cnblogs.com/zxc2man/p/6604290.html 带你入门: 1.INIT_WORK(struct work_struct *work, void ( ...
- css杂项补充
css杂项补充 一.块与内联 1.块 独行显示 支持宽高,宽度默认适应父级,高度默认由子级或内容撑开 设置宽高后,采用设置的宽高 2.内联 同行显示 不支持宽高 margin上下无效果,左右会起作用, ...
- C#中用ILMerge合并DLL和exe文件成一个exe文件或者DLL
ILMerge是一个将多个.NET程序集合并到一个程序集中的实用程序.它既可以作为 开源使用,也可以作为NuGet包使用. 如果您在使用它时遇到任何问题,请与我们联系.(mbarnett _at_ ...
- 分享一个学习的网站:每天会有大量AI相关的干货(论文分享,行业动态,相关竞赛经验分享等)http://www.deepsmart.ai/
网址:http://www.deepsmart.ai/ 微信公众号如下:
- Log.isLoggable之一正确的使用姿势
DEBUG方法比较当我们在做APP开发时,需要设置调试开关打印Log,下面我列举出3种方法: 方法一:直接赋值public static final boolean DEBUG = true;//fa ...
- Elasticsearch为记录添加时间戳timestamp
https://blog.csdn.net/peterwanghao/article/details/76577546
- 期货大赛项目|十,MVC对js和css的压缩
在Global.asax中添加两行代码 //默认在调试期间,不会启用js和css的压缩 //下面的语句确保了在调试期间也压缩css和js BundleTable.EnableOptimizations ...
- UOJ#460. 新年的拯救计划 构造
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ460.html 题解 本题的构造方法很多.这里只介绍一种. 首先,总边数为 $\frac{n(n-1)}2 ...
- 安卓开发app在后台运行时页面数据被系统清除后操作之重启APP
在安卓开发过程中,当点击HOME键,将app运行在后台时,然后再点击app图标进入时,遇到了如下两种情况: 1.每次打开时,app的入口页面总是被执行. 2.当运行内存被其它应用占用完时,在进入app ...
- python 函数split()
函数:split() Python中有split()和os.path.split()两个函数,具体作用如下:split():拆分字符串.通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(lis ...