✅作者简介:CSDN内容合伙人、信息安全专业在校大学生🏆
🔥系列专栏 : 内网安全
📃新人博主 :欢迎点赞收藏关注,会回访!
💬舞台再大,你不上台,永远是个观众。平台再好,你不参与,永远是局外人。能力再大,你不行动,只能看别人成功!没有人会关心你付出过多少努力,撑得累不累,摔得痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷。
文章目录
- 渗透攻击流程
- 首先 我们要进入到目标的局域网内。内网都进不去怎么进行内网渗透。
- 信息收集
- web渗透需要信息收集,内网同样也要信息收集
- windows
- linux
内网渗透
内网,局域网,指在某一区域内由多台计算机互相联通的计算机组。
渗透攻击流程
首先 我们要进入到目标的局域网内。内网都进不去怎么进行内网渗透。
比如我们在护网红蓝对抗中,我们要对学校或者某企业进行内网渗透测试。
1、通过企业或者学校web网站、软件、小程序漏洞,去获取运行该网站、软件、小程序的服务器
社会工程学
2、向公司工作人员或者学校学生、老师以及管理人员发邮箱 诱导工作人员点击恶意连接,上线对方电脑或者服务器。
3、偷偷溜进学校,企业园区,通过入侵wifi或者伪装工作人员路由器接线,交换机接线。
什么是DMZ区域
DMZ,是英文“demilitarized zone”的缩写,中文名称为“隔离区”,也称“非军事化区”。它是为了解决安装防火墙后外部网络的访问用户不能访问内部网络服务器的问题,而设立的一个非安全系统与安全系统之间的缓冲区。该缓冲区位于企业内部网络和外部网络之间的小网络区域内。在这个小网络区域内可以放置一些必须公开的服务器设施,如企业Web服务器、FTP服务器和论坛等。另一方面,通过这样一个DMZ区域,更加有效地保护了内部网络。因为这种网络部署,比起一般的防火墙方案,对来自外网的攻击者来说又多了一道关卡。
信息收集
web渗透需要信息收集,内网同样也要信息收集
当我们渗透进内网环境后,我们并不知道我们处于什么环境,也并不知道这个企业或者学校他的网络拓扑结构,测试人员或者黑客应先对当前网络环境做出判断。对当前机器角色分析,对机器所处网络环境拓扑结构分析,对机器所处区域分析。
当前机器角色分析:
·判断当前主机是web服务器/开发测试服务器/公共服务器/文件服务器/代理服务器/dns服务
器/还是存储服务器等。具体判断过程可根据主机名,文件,网络链接情况综合完成。对机器所出网络环境拓扑结构分析:
·对所处内网进行全面数据收集和分析整理,绘制出大致的内网整体结构拓扑。对机器所处区域分析:
·判断机器所处于网络拓扑哪个区域,是在dmz/办公区/还是核心区/区域并不是绝对的,所以
区域界限也是相对的。
如何进行信息收集?
本机信息收集
windows
1、我是谁
whoami
查看当前登录的用户
query user
根据用户名称显示,知道权限
2、当你们拿到一台电脑主机权限,你们习惯性第一步去看什么?或者说你们在自己电脑虚拟机做实验的时候最关注什么信息?
ipconfig /all
主机名 ip地址 网关 DNS服务器(只有一台电脑联网,其他电脑都是通过那台联网的电脑去解析网站的,或者在局域网内共享ip服务的)
3、查看路由
route print
自己搭建的靶机环境的路由信息,而实际环境和大型企业网络中的路由表信息要复杂得多。
在路由表中的“网络目标”都是主机可以直接访问到的,
“网络目标”列中包括几个重要的IP地址段192.168.204.1/24、192.168.56.1/24,测试人员在后续的横向渗透中可以尝试探测其中的存活主机。
4、其次我们要关注操作系统以及补丁情况
systeminfo
系统名称(是不是服务器)、版本(漏洞)、注册用户(邮箱)、补丁
5、查看端口连接信息
netstat -ano
查看tcp和udp端口的连接情况,有内网连接,也有外网连接,收集内网地址段信息
6、查看当前主机与所连接的客户端主机之间的会话
net session
7、查看当前网络共享信息
net share
8、查看已经连接的网络共享
net use
9、查看当前进程信息
tasklist
tasklist /svc
还有wmic.exe工具
wmic process get Name,ProcessId, ExecutablePath
wmic process where Name=" msdtc.exe" get ExecutablePath
通常,测试人员可以根据得到的进程列表确定目标主机上本地程序的运行情况,并对目标主机上运行杀毒软件等进行识别。是通过在线工具在目标主机上识别出的杀毒软件的进程。
https://tools.zjun.info/getav/
10、查看计划任务信息
schtasks /query /v /fo list
查看当前主机上所有的计划任务
11、查看自启程序信息
wmic startup get Caption,Command,Location,User
查看当前主机上所有的自启程序信息,并过滤出程序名称、所执行的命令、程序的路径、所属用户
12、查看系统补丁安装信息
wmic qfe get Caption, CSName,Description,HotFixID,InstalledOn
查看当前主机安装的补丁列表,并过滤出补丁链接、名称、描述、补丁编号以及安装时间,通常,测试人员可以根据目标主机的操作系统版本和缺少的补丁来辅助后面的提权操作。
13、查看应用安装信息
wmic product get Caption,Version
查看目标主机上安装的应用软件信息,并过滤出应用的名称和版本
14、查看本地用户/组信息
net user
net localgroup administrators
net user <username> <password> /add
#创建本地用户
net localgroup administrators <username> /add
#将用户加入本地管理员组
linux
1.系统信息
uname -r #打印内核版本信息
uname -n #系统主机名字
uname -m #系统架构
uname -a #打印所有可用的系统信息,包括查看内核/操作系统/信息等
Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种
伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看
有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。
cat /proc/version #查看内核信息
cat /proc/cpuinfo #查看CPU详情
cat /etc/*-release #查看发布信息,不同系统名称不同用*-release,release翻译:发行版
cat /etc/issue #发布信息
df -a #文件系统信息,-a显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统。
2.用户和组信息
Linux中的用户和组分别在:
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
这几个文件是无法手动写入的,它们只能通过命令的方式来修改。
cat /etc/passwd #列出系统所有用户
cat /etc/group #列出系统所有组,组名:密码:GID:该用户组中的用户列表
cat /etc/shadow #列出所有用户的哈希(需要root权限)
users #显示当前登录的用户
who -a #显示当前登录的用户
w #显示目前登入系统的用户有哪些人,以及他们正在执行的程序
last #显示登入过的用户信息
lastlog #显示系统中所有用户最近一次登录信息
lastlog -u 【username】#显示指定用户最后一次登入信息
3.用户和权限信息
whoami #查看当前用户
id #查看当前用户信息
cat /etc/sudoers #可以使用sudo提升到root用户(需要root权限)
/***
当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限
–>确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认
–>若密码输入成功,则开始执行sudo后续的命令
不需要输入密码的方法:
1.root执行sudo时不需要输入密码(eudoers文件中有配置root ALL=(ALL) ALL这样一条规则)
2.欲切换的身份与执行者的身份相同,不需要输入密码
3./etc/sudoers文件设置为允许用户在不输入该用户的密码的情况下使用所有命令
如设置允许wheel用户组中的用户在不输入该用户的密码的情况下使用所有命令
( %potato ALL=(ALL) NOPASSWD: ALL)
***/
sudo #允许普通用户执行一些或者全部的root命令的一个工具
sudo -l #列出目前用户可执行与无法执行的指令
su 用户(指定要切换身份的目标用户) #切换当前用户身份到其他用户身份
4.环境信息
env #打印系统环境信息
echo $USER #输出上述环境变量中的信息
echo $PATH #环境变量中的路径信息
history #打印历史命令
pwd #显示当前路径
cat /etc/profile #显示默认系统遍历
cat /etc/shells #显示可用的shell
5.服务信息(跟linux版本有关)
systemctl list-units --type=service #列出所有系统服务
systemctl list-units --type=service --state=running #列出所有启动的系统服务
service --status-all #列出服务项
6.网络信息
ifconfig #查看所有网络接口的属性
iptables -L #查看防火墙设置,关闭防火墙命令 service iptables stop
route -n #查看路由表,-n 不解析名字
netstat -lnop #查看所有监听端口
netstat -anop #查看所有已经建立的连接
7.常用信息收集
1.软件信息
dpkg -l #所有软件安装信息,dpkg是Debian软件包管理器的基础
sudo -V #查看sudo版本信息
apache2 -v #查看apache的版本信息
mysql --version #mysql的版本信息
psql -V #Postgres数据库的版本信息
perl -v #perl的版本信息
java -version #java的版本信息
python --version #python的版本信息
find / -name %program_name% #查找该文件
cat /etc/apache2/envvars #查看运行的apache账户
2.网络,路由和通信
/sbin/ifconfig -a #列出网络接口信息
cat /etc/network/interfaces #列出网络接口信息
arp -a #查看系统arp表
route #打印路由信息
cat /etc/resolv.conf #查看dns配置信息
netstat -an #打印本地端口开放信息
iptables -L #列出iptables的配置规则
cat /etc/services #查看端口服务映射
3.作业和任务
crontab -l -u %username% #显示指定用户的计划作业
ls -la /etc/cron* #计划任务
top #列出当前进程
4.服务信息
ps aux #查看进程信息
cat /etc/inetd.conf #由inetd管理的服务列表
cat /etc/exports #nfs服务器的配置
5.有用的命令
find / -perm -4000 -type f #查找SUID的文件
find / -uid 0 -perm -4000 -type f #查找root权限的SUID文件
find / -perm -2 -type f #找出可写的文件
find / ! -path “/proc/” -perm -2 -type f -print #查找/proc/以外的可写文件
find / -perm -2 -type d #查找可写的目录
ls -ahlr /root/ #查看是否有权限列用户目录
cat ~/.bash_history #查看当前用户的各种历史记录
grep -l -i pass /var/log/.log #查询包含pass的日志并且打印匹配到的行
ls -la /etc/.conf #列出/etc/下的所有的配置文件
lsof -i -n #列出打开的文件