Codebase list fudgec2 / upstream/latest FudgeC2 / ServerApp / templates / CampaignLogs.html
upstream/latest

Tree @upstream/latest (Download .tar.gz)

CampaignLogs.html @upstream/latestraw · history · blame

{% extends "ImplantMain.html" %}
{% block main2 %}
<div class="row">
    <div class="col-md-12">
        <h3>Campaign Logs</h3>
        <p class="text-warning">Dev note: The campaign logging is currently under active development and will be released as a working beta in v0.5.0.</p>
        <table class="table table-striped table-bordered table-sm results table-hover" id="dtBasicExample" cellspacing="0" width="100%">
            <thead>
                <tr>
                    <th scope="col">Type</th>
                    <th scope="col">Content</th>
                </tr>
            </thead>
            <tbody id="test_2">
            </tbody>
        </table>
    </div>
    <div class="col-md-6">
        <div id="campaign_logs"></div>
    </div>
</div>

<script>
function unix_to_human_time(unixtime){
    var utcSeconds = unixtime;
    var d = new Date(0);
    d.setUTCSeconds(utcSeconds);
    var date = new Date(unixtime*1000);
    var year = date.getFullYear();
    var month = date.getMonth();
    var day = date.getDate();
    var hours = "0" + date.getHours();
    var minutes = "0" + date.getMinutes();
    var seconds = "0" + date.getSeconds();
    time_last_seen = hours.substr(-2)+":"+minutes.substr(-2)+':'+seconds.substr(-2)+' '+day+'/'+month+'/'+year
    return time_last_seen
}

function render_campaign_data_list(){
    $.ajax({
        url:"/{{ cid }}/logs",
        type:"POST",
        success: function (response) {
            for (item in response){
                ToWrite = ""
                if (response[item]['log_type'] === "new_imp") {
                    var obfs_lvl = "Unknown"
                    if ( response[item]['entry']['obfuscation_level'] === 0){
                        obfs_lvl = "Full"
                    }
                    ToWrite = "<br> New implant activated<br>Common Name: "+response[item]['entry']['generated_title']+"<br>Callback URL: "+response[item]['entry']['callback_url']+"<br>Time: "+unix_to_human_time(response[item]['time'])+"<br>Obfuscation Level: "+obfs_lvl+"<hr>"
                } else if (response[item]['log_type'] === "cmd_reg") {
                    ToWrite = "<br>New command reg<br>Implant: "+response[item]['entry']['uik']+"<br>CMD: "+response[item]['entry']['cmd']+"<br>Time: "+unix_to_human_time(response[item]['time'])+"<hr>"
                } else if (response[item]['log_type'] === "cmd_pickup") {
                    ToWrite = "<br>Command read by Implant<br>Implant: "+response[item]['entry']['uik']+"<br>CMD: "+response[item]['entry']['cmd']+"<br>Time: "+unix_to_human_time(response[item]['time'])+"<hr>"
                } else if (response[item]['log_type'] === "cmd_response"){
                    ToWrite = "<br>Command Response<br>Implant: "+response[item]['entry']['uik']+"<br>Response: "+response[item].entry.response+"<br>Time: "+unix_to_human_time(response[item].time)+"<hr>"
                }
                document.getElementById('campaign_logs').innerHTML = document.getElementById('campaign_logs').innerHTML + ToWrite;
            }
        }
    })
}
render_campaign_data_list()

function render_2(){
    $.ajax({
        url:"/{{ cid }}/logs",
        type:"POST",
        success: function (response) {
            for (item in response){
                if (response[item]['log_type'] != "implant_check_in"){
                    tag = `<tr><td>${response[item]['log_type']}</td><td>${response[item]['entry']}</td></tr>`
                    base = document.getElementById('test_2').innerHTML;
                    document.getElementById('test_2').innerHTML = base + tag;
                }
            }
        }
    })
}
render_2()

</script>
{% endblock %}