Skip to content

Commit

Permalink
Updated README
Browse files Browse the repository at this point in the history
  • Loading branch information
ouro-borous committed Oct 12, 2024
1 parent 58242cb commit b74e21e
Showing 1 changed file with 40 additions and 54 deletions.
94 changes: 40 additions & 54 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,70 +1,61 @@
# popo

The "poisoner poisoner." A fork of respounder that passes honeycreds to any found responder.


<img src="https://i.imgur.com/o1Gya0D.png" width=300px />

# res·pound·er
<span>/rɪˈspaʊnd dər/</span></span>
<i>noun</i>
<ul>
<li>
<div style="margin-left:10px; display:inline;">
A tool that detects presence of a <a href=https://github.com/SpiderLabs/Responder>Responder</a> in the network
</div>
</li>
<li>
<div style="margin-left:10px; display:inline;">
Identifies compromised machines before hackers run away with the loot (hashes)
</div>
</li>
</ul>

Respounder sends LLMNR name resolution requests for made-up hostnames that do not exist.
In a normal non-adversarial network we do not expect such names to resolve.
However, a responder, if present in the network, will resolve such queries
and therefore will be forced to reveal itself.
The "poisoner poisoner." A fork of respounder that passes honeycreds to responders and other LLMNR poisoners.


## Download

### Latest Releases
Respounder is available for 32/64 bit linux, OS X and Windows systems.
Popo is available for 64-bit Linux. More versions will come later.
Latest versions can be downloaded from the
[Release](https://github.com/codeexpress/respounder/releases) tab above.
[Release](https://github.com/io-project-cyber/popo/releases) tab above.

### Build from source
This is a golang project with no dependencies. Assuming you have golang compiler installed,
the following will build the binary from scratch
This is a golang project with ~~no~~ one dependency. Sorry, respounder.

```
sudo apt update
sudo apt install git golang
#Get our repository
git clone https://github.com/io-project-cyber/popo.git
cd ./popo
#Download the library we need (zgrab2)
go mod download
```

**READ BEFORE YOU BUILD**
At this point, we need to replace one of the files (smb.go) in the library. It doesn't like working with incomplete sessions.
The zgrab2 library should be in your $GOROOT or $GOPATH, but during testing, downloading without those variables set was pretty inconsistent, so I don't feel like a script would be reliable.
You're looking for a file path which looks something this: .../go/pkg/mod/github.com/stacktitan/[email protected]._____/smb/smb.go

Once you've done these steps, the executable is ready to be built.
```
$ git clone https://github.com/codeexpress/respounder
$ cd respounder
$ go build -o respounder respounder.go
go build popo.go
```

## Usage

Running `respounder` is as simple as invoking it on the command line.
Running `popo` is as simple as invoking it on the command line.
Example invocation:
```bash
$ ./respounder


.´/
/ ( .----------------.
[ ]░░░░░░░░░░░|// RESPOUNDER //|
) ( '----------------'
'-'

[wlan0] Sending probe from 192.168.0.19... responder not detected
[vmnet1] Sending probe from 172.16.211.1... responder not detected
[vmnet8] Sending probe from 172.16.55.1... responder detected at 172.16.55.128
$ ./popo
______ ____ ______ ____
\____ \ / _ \\____ \ / _ \
| |_> > <_> ) |_> > <_> )
| __/ \____/| __/ \____/
|__| |__|

[ens33] Sending probe from 192.168.1.119... responder detected at 192.168.1.160
Sending honeycreds to 192.168.1.160
2024/10/11 21:42:15 Success!
```

### Flags

```
$ ./respounder [-json] [-debug] [-hostname testhostname | -rhostname]
$ ./popo [-json] [-debug] [-hostname testhostname | -rhostname]
Flags:
-json
Expand Down Expand Up @@ -96,7 +87,7 @@ in a loop
For eg. the following `crontab` runs respounder every minute and logs a JSON file to syslog
whenever a responder is detected.
```bash
* * * * * /path/to/respounder -json | /usr/bin/logger -t responder-detected
* * * * * /path/to/popo -json | /usr/bin/logger -t responder-detected
```

Example `syslog` entry:
Expand All @@ -105,10 +96,5 @@ code@express:~/$ sudo tail -f /var/log/syslog
Feb 9 03:44:07 responder-detected: [{"interface":"vmnet8","responderIP":"172.16.55.128","sourceIP":"172.16.55.1"}]
```

## Demo
![Respounder in action](https://i.imgur.com/ymcDRnJ.gif)
## Coming Up Next: Android App
There are plans to port this tool to an android app so that adversarial Wi-Fi networks
(eg. WiFi Pineapple or WiFi Pumpkin running responder) can be
detected right from a mobile phone.
## Future plans
Sure, we can pass honeycreds. But how do we track them? How can we tell all of our machines that something is a honeycred and raise maximum alert if it's seen?

0 comments on commit b74e21e

Please sign in to comment.